我想知道是否有人可以提供一些权威的参考摘要,说明CSS中的!important声明何时无法覆盖内联样式.
确定哪些样式相互覆盖涉及许多因素.样式声明的下方出现在级联中,并且在定位元素时越具体,它对其他样式的权重就越大.
这是样式继承的CSS2标准:
如果级联产生值,请使用它.
否则,如果继承该属性,请使用父元素的值,通常是计算值.
否则使用属性的初始值.每个属性的初始值在属性的定义中指示.
在内部,浏览器将根据标准计算规则的特异性.!important声明将增加规则的权重,但动态分配样式属性通常优先,因为它通常具有更高的指定性.
到目前为止,研究似乎表明:
IE7支持!重要.
FireFox 2和3支持!重要.
IE6支持!在标准兼容模式下很重要.
但是,IE6(可能是IE7)不支持!在这种情况下很重要:
someselector { property: value !important; same-property: another-value; }
它将使用第二个值(最后列出的值).
这个页面证实了这一点:
在Internet Explorer 6及更早版本中,如果重要声明出现在同一声明块中同一属性的正常声明之前,则正常声明将覆盖重要声明.
当使用非法标识符代替关键字important时,Internet Explorer 6和7重视声明,而不是忽略声明.
Gizmo的评论指出Safari和Opera支持!重要.