使用 html5 选择器时不应用 CSS 样式。浏览器在渲染 CSS 方面有什么变化吗?

标签 css html internet-explorer internet-explorer-8 browser-support

我最近在使用 IE8 时遇到了令人沮丧的情况。这是最奇怪的事情。我以前的工作代码停止工作。当我使用 headerfooterarticlenav 等 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/

相关文章:

javascript - 如何将日期选择器添加到网站?

jquery - 更改 div 顺序以适应响应式视口(viewport)

javascript - 当文本框中的字符超过 3 个时,我需要添加边框

html - 如何对齐输入字段?

javascript - 呈现日期的差异 - IE JavaScript 与 Chrome JavaScript

css - Bootstrap 表单组和输入组

css - 无法摆脱文本列之间的空白?

javascript - .options[e.selectedIndex].innerHTML 不抓取值

html - Internet Explorer 中的 <blink> 标签

security - SSL:不安全的内容 IE