1

我最近在使用 IE8 时遇到了令人沮丧的情况。这是最奇怪的事情。我以前工作的代码停止工作。header当我在我的外部 CSS 样式表中使用 HTML5 标记(例如、和仅举几例)时,似乎正在发生这种情况footer,与它们对应的 CSS 选择器一起使用。问题是:突然之间,CSS 样式不再应用于我的标记。就像我根本没有样式表一样。articlenav

我已经确保我没有收到任何 404 错误以及 JavaScript 错误。

我还检查了DOCTYPE以确保我的 HTML 文档处于标准模式,并且浏览器甚至声明是这种情况。

另外,据我所知,即使浏览器不一定将 HTML5 标签视为特殊的(就像大多数现代浏览器一样),它也不会篡改它们,并且它们仍然应该能够在 CSS 样式表中使用他们各自的选择器。

至少这是我从另一个 Stackoverflow 帖子中得到的印象: https ://stackoverflow.com/a/7801476/295019

是一直如此,还是我一直都错了。

我想我应该能够在我的代码中使用 HTML5 标签,或者如果我的代码失败了,那么使用它有什么意义。考虑到很多人都在使用 IE8(即我的客户仍然要求他们的页面在上面工作),所以建立在 IE8 上运行的网站符合我的最大利益。

在这一点上,我还应该说明我在 Mac 上工作并在带有 IE8 的 VirtualBox 上运行的 Windows 7 的虚拟机版本上进行测试。也许这与我的问题有关。但是,我已经多次重新启动我的机器,希望它能正常工作。我还确保安装了 Flash 并且安装没有损坏(据我所知)。

有谁知道发生了什么?或者遇到过类似的问题?

任何帮助将不胜感激。

4

3 回答 3

4

不幸的是,您对 IE8 与 HTML5 元素一起工作的印象是不正确的。IE8 不能与<section>或之类的元素一起正常工作<header>。在页面中使用这些元素会导致 IE8 出现重大问题。

不过,好消息是,有一个简单的方法可以解决这个问题。

修复是一个名为html5Shiv的脚本。

这个脚本使用了一些 Javascript hack 来使 HTML5 元素在旧版本的 IE 中工作。(也就是说,它只是阻止他们破坏页面——它显然没有添加新的 HTML5 功能,所以不要指望<canvas>突然爆发!)

只需将此脚本添加到页面顶部即可。

另一种选择是名为Modernizr的脚本。这包括 html5Shiv 功能,还添加了另一层兼容性检查,如果您尝试创建一个现代站点但仍支持旧浏览器,这将非常有用。

希望有帮助。

于 2012-10-26T21:40:16.807 回答
2

这可能会帮助你:

<!--[if lt IE 9]>
<script>
document.createElement('header');
document.createElement('nav');
document.createElement('section');
document.createElement('article');
document.createElement('aside');
document.createElement('footer');
document.createElement('hgroup');
</script>
<![endif]-->

http://www.nickyeoman.com/blog/html/118-html5-tags-in-ie8

于 2012-10-26T21:38:23.080 回答
1

IE8 不支持 HTML5 标记。如果您想摆脱头痛,我建议您使用 javascrip 库来使旧浏览器支持您的新 html 代码。像modernizr http://modernizr.com/

于 2012-10-26T21:40:25.323 回答