为什么不是:nth-​​child在IE9工作?

时间:2011-05-06 17:24:28

标签: css internet-explorer-9

根据this page,:nth-​​child应该在IE9中工作,我之前尝试过它并且工作正常,但在this page上,它似乎没有用。在Chrome中查看该页面以查看预期的行为,在IE中,您会看到它无效。您可以通过Web检查器看到这一点,但供您参考,相关的CSS行是;

.ad_widget:nth-child(3n+2) { background: #efefef; }
.ad_mrow {background: #efefef;}`

我很茫然。有什么想法吗?

5 个答案:

答案 0 :(得分:18)

由于某些原因我无法理解,IE9默认使用兼容模式查看Intranet站点,或者将HTML页面存储为PC上的文件。兼容模式意味着“像愚蠢的旧浏览器一样渲染东西”。这意味着,当您为网站设计内容并尝试从IE9中最喜欢的IDE进行预览时,CSS3的内容都不起作用。你必须点击工具 - >' IE9菜单中的兼容性视图设置,然后取消选中“在兼容性视图中显示互联网站点”的讨厌复选框。从那时起,可怜的浏览器就像任何理智的浏览器,如Safari。他们为什么这么做?天堂只知道,但由于我一直责怪我的代码,我花了很长时间才发现这个简单的修复。

答案 1 :(得分:8)

他们在这里看起来一样。你确定你没有处于兼容模式吗?

答案 2 :(得分:2)

我的IE9版本被锁定在IE8渲染模式,该模式未应用以下选择器:

 .parentClass > div:nth-child(n+2) .childClass

您可以在此处找到更改选项的选项:

Where in IE9 to Adjust Browser and Document mode

答案 3 :(得分:0)

它似乎对我有用。IE9

Chrome

答案 4 :(得分:-3)

<!DOCTYPE html>不会停止quirk模式,<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">会这样做。