何时使用“!important”来保存当天(使用CSS时)

时间:2010-01-11 14:46:43

标签: css

#div p {
    color: red !important;
}
...
#div p {
    color: blue;
}

我理解!important是如何工作的,在这种情况下,div会呈现红色,因为它现在具有优先级(!important)。但我仍然无法找到适当的情况来使用它。有人知道!important节省一天的任何例子吗?

7 个答案:

答案 0 :(得分:15)

考虑一下:

#someElement p {
    color: blue;
}

p.awesome {
    color: red;
}

如何使awesome段始终变为红色,即使是#someElement内的段落也是如此?没有!important,第一条规则将具有更多的特异性,并将战胜第二条规则。

答案 1 :(得分:11)

仅作为最后的手段!这是因为一旦使用它很难覆盖它。我的经验法则是:

  • 从不在网站范围内使用!important。
  • 在页面特定的css上使用!important来覆盖网站范围或外部css(例如来自ExtJs或YUI)。
  • 从不使用!在编写插件/ mashup时非常重要。
  • 始终在考虑!important
  • 之前,寻找一种使用特异性的方法

答案 2 :(得分:3)

!important可以节省您不控制HTML输出并呈现style=''属性的情况。想想ASP.NET和其他框架。

然后,您可以更改此样式的唯一方法是使用javascript或将CSS规则标记为更重要。

答案 3 :(得分:1)

此外,IE6 / 7中忽略!important。因此,您可以将其用作IE6/7 hack

答案 4 :(得分:1)

!important在您使用其他人的代码时非常有用,并且无法通过使用更具体的选择器来覆盖效果。当我被要求进入并将页面或一小组页面添加到现有站点时,我必须包含现有样式表,但无法编辑它们(因为缺少访问权限或因为涓滴效果会打破其他事情),那就是!重要的是派上用场。否则,您应该使用选择器特异性来覆盖行为。

答案 5 :(得分:0)

如果你的页面包含多个CSS文件,你编写的CSS,以及与其他方编写的软件一起使用的附加CSS,你可能需要一些标记的CSS!重要的是“保证”它不会被CSS覆盖来自其他包含的文件。

答案 6 :(得分:0)

除非您先尝试过其他所有内容,否则不要使用!important声明,并记住任何缺点。如果您确实使用它,那么在可能的情况下,在您的CSS中将注释放在任何被覆盖的样式旁边可能是有意义的,以确保更好的代码可维护性。