IE 7没有使用最具体的CSS规则

时间:2011-08-09 14:57:25

标签: css internet-explorer-7 css-selectors

我希望将所有th元素设置为相同(黑色背景上的白色文本),而不是几个不需要此格式的用法 - 在这种情况下,我添加了一个no-headers类到表元素。

th {background-color: #000000; color:#FFF;}
table.no-headers th {color:inherit; background-color:inherit ;border:inherit; } 

所以这里有一些示例标记,如果你需要一些

<table><tr><th>This has a black bground</th></tr></table>
<table class="no-headers"><tr><th>This inherits bground from parent</th></tr></table>

这在IE 8/9和FF和Chrome中运行良好,但在IE 7中没有。 IE 7只是不会使用第二条规则 - 尽管它更具选择性 事实上,我已经尝试了各种方法来解决这个问题 - 一切都无济于事。

我也试过在第th个元素上添加no-headers类

th {background-color: #000000; color:#FFF;}
th.no-headers {color:inherit; background-color:inherit ;border:inherit; } 

<table><tr><th class="no-headers">This inherits bground from parent</th></tr></table>

即使这样也行不通 - 我觉得我做的事情显然是非常愚蠢/错误 - 但是再次在其他浏览器中工作正常!

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:5)

IE7无法识别inherit关键字(除了一些不起眼的属性)。

最好的办法是手动指定默认颜色。

答案 1 :(得分:1)

根据这篇SO帖子:IE7 CSS inheritance does not work IE在IE8之前没有支持继承。因此,您必须专门指定颜色,背景和边框。

答案 2 :(得分:1)

IE7不支持样式继承。这是在IE8中引入的。

请参阅:IE7 CSS inheritance does not work

这不是一个大问题,因为IE8是IE7的通用升级,不像IE9,只适用于Windows NT6及以上版本。