我想知道是否有人可以提供一些权威参考摘要,说明CSS中的!important声明不何时覆盖内联样式。
答案 0 :(得分:16)
确定哪些样式相互覆盖有很多因素。样式声明中较低的部分出现在级联中,并且更具体是针对该元素的,它对其他样式的权衡越多。
这是样式继承的CSS2 standard:
- 如果级联产生值,请使用它。
- 否则,如果继承该属性,请使用父级的值 元素,通常是计算值。
- 否则使用属性的初始值。的初始值 每个属性都在 财产的定义。
醇>
在内部,根据标准,浏览器将calculate the specificity of a rule。 !important声明将增加规则的权重,但动态分配样式属性通常优先,因为它通常被更高度指定..
答案 1 :(得分:12)
到目前为止,研究似乎表明:
然而,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来覆盖内联规则。但是请记住,内联规则也可以被标记!也很重要。