我知道除了inherit
和direction
之外,IE7不支持任何CSS属性的值visibility
。当浏览器不支持某个值时,它应该不应用给定的声明(该特定行)。有谁知道为什么IE7不使用第一个ul a
颜色声明,而是选择使用普通的a
颜色声明?它只是忽略了整个ul a
规则吗?
要明确:在大多数浏览器中,第一个链接为红色,第二个链接为蓝色。在IE7中,第一个链接是红色,但第二个链接也是红色,即使我在ul a
规则中至少有一个声明它应该理解。
<!DOCTYPE html>
<html>
<head>
<title>Anchor Inherit Test</title>
<style type="text/css">
body {
color: #369;
}
a {
color: #f00;
}
ul a {
color: #369;
color: inherit; /* this should be ignored by IE7, right? */
}
</style>
</head>
<body>
<p>This is testing a <a href="#">red link</a> in a paragraph.</p>
<ul>
<li><a href="#">here is a link that should not be red</a></li>
</ul>
</body>
</html>
答案 0 :(得分:5)
color
不是唯一不会忽略不受支持和无效值的属性
例如,background-color
和display
也会受到影响。
有谁知道为什么IE7不使用 第一个ul颜色声明, 而是选择使用平原a 颜色声明?它只是无视 整个ul规则?
任何无法识别的值(甚至没有)都会触发错误
显然,如果最后一个包含错误的值,LTE IE7会丢弃同一规则中的所有颜色声明(甚至!important
个)。
而且jsbin证实它也有效地覆盖了同一规则中的先前声明。
作为替代方案,您可以使用dynamic property。