我最近在使用 IE8 时遇到了令人沮丧的情况。这是最奇怪的事情。我以前的工作代码停止工作。当我使用 header
、footer
、article
和 nav
等 HTML5 标签时,似乎会发生这种情况仅举几例,在我的外部 CSS 样式表中与它们对应的 CSS 选择器一起使用。问题是:突然之间,CSS 样式不再应用于我的标记。就像我根本没有样式表一样。
我已确保不会收到任何 404 错误以及 JavaScript 错误。
我还检查了 DOCTYPE
以确保我的 HTML 文档处于标准模式并且浏览器甚至声明是这种情况。
此外,据我所知,即使浏览器不一定将 HTML5 标签视为特殊标签(就像大多数现代浏览器那样),它也不会篡改它们,它们仍然应该能够在CSS 样式表及其各自的选择器。
至少这是我从其他 Stackoverflow 帖子中得到的印象: https://stackoverflow.com/a/7801476/295019
是一直都是这样还是我一直都错了。
我想我应该能够在我的代码中使用 HTML5 标签,或者如果我的代码失败,使用它有什么意义。考虑到有相当多的人在使用 IE8(即我的客户仍然要求他们的页面在 IE8 上运行),构建在 IE8 上运行的网站符合我的最大利益。
此时我还应该声明,我在 Mac 上工作,并在 VirtualBox 和 IE8 上运行的 Windows 7 虚拟机版本上进行测试。也许这与我的问题有关。但是,我已经多次重启我的机器,希望它能正常工作。我还确保安装了 Flash 并且安装没有损坏(据我所知。)
有人知道发生了什么事吗?或者遇到过类似的问题?
如有任何帮助,我们将不胜感激。
最佳答案
不幸的是,您认为 IE8 可以处理 HTML5 元素的印象是不正确的。 IE8 无法正常处理 <section>
等元素或 <header>
.在页面中使用这些元素将导致 IE8 出现重大问题。
好消息是,这个问题有一个简单的修复方法。
修复是一个名为 html5Shiv 的脚本.
这个脚本使用了一些 Javascript hack 来使 HTML5 元素在旧版本的 IE 中工作。 (也就是说,它只是阻止他们破坏页面——它显然没有添加新的 HTML5 功能,所以不要指望 <canvas>
突然活跃起来!)
只需将此脚本添加到页面顶部即可。
另一个选项是名为 Modernizr 的脚本.这包括 html5Shiv 功能,并且还添加了另一层兼容性检查,如果您尝试创建一个现代站点但仍支持旧浏览器,这将非常有用。
希望对您有所帮助。
关于使用 html5 选择器时不应用 CSS 样式。浏览器在渲染 CSS 方面有什么变化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13094754/