什么时候CSS的!重要声明不起作用?

时间:2008-10-09 23:47:34

标签: css

我想知道是否有人可以提供一些权威参考摘要,说明CSS中的!important声明何时覆盖内联样式。

3 个答案:

答案 0 :(得分:16)

确定哪些样式相互覆盖有很多因素。样式声明中较低的部分出现在级联中,并且更具体是针对该元素的,它对其他样式的权衡越多。

这是样式继承的CSS2 standard

  
      
  1. 如果级联产生值,请使用它。
  2.   
  3. 否则,如果继承该属性,请使用父级的值   元素,通常是计算值。
  4.   
  5. 否则使用属性的初始值。的初始值   每个属性都在   财产的定义。
  6.   

在内部,根据标准,浏览器将calculate the specificity of a rule。 !important声明将增加规则的权重,但动态分配样式属性通常优先,因为它通常被更高度指定..

答案 1 :(得分:12)

到目前为止,研究似乎表明:

  • IE7支持!重要。
  • FireFox 2和3支持!重要。
  • IE6支持!在标准兼容模式下非常重要。

然而,IE6(可能是IE7)不支持!this case中的重要内容:

someselector {
  property: value !important;
  same-property: another-value;
}

它将使用第二个值(列出的最后一个)。

this page确认了这一点:

  

在Internet Explorer 6及更早版本中,如果   出现一个重要的声明   在正常声明之前   相同的财产   声明块,正常   声明将覆盖   重要声明。

     

Internet Explorer 6和7给出   一个声明的重要性   使用非法标识符代替   关键字很重要,而不是   无视他们的声明   应该。

Gizmo的评论指出Safari和Opera支持!重要。

答案 2 :(得分:1)

我很确定并非所有浏览器都能识别!important声明。但是不记得哪些是我的头脑。会检查并回复你。

[编辑] 我可以确认IE6及更早版本不认识!重要(除非浏览器处于标准合规模式 - 不是默认模式)。

您可以使用!important来覆盖内联规则。但是请记住,内联规则也可以被标记!也很重要。