IE7和“继承”:忽略整个规则?

时间:2010-11-10 20:11:59

标签: css internet-explorer-7

我知道除了inheritdirection之外,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>

1 个答案:

答案 0 :(得分:5)

color不是唯一不会忽略不受支持和无效值的属性 例如,background-colordisplay也会受到影响。

  

有谁知道为什么IE7不使用   第一个ul颜色声明,   而是选择使用平原a   颜色声明?它只是无视   整个ul规则?

任何无法识别的值(甚至没有)都会触发错误 显然,如果最后一个包含错误的值,LTE IE7会丢弃同一规则中的所有颜色声明(甚至!important个)。
而且jsbin证实它也有效地覆盖了同一规则中的先前声明。

作为替代方案,您可以使用dynamic property