有时!important
很有用,例如,如果我为网站上的所有链接定义了常用样式(选择器,比如a
),但是当我想覆盖某些规则时,我有以下内容选择:
!important
哪种方式更好,可能有一些指导方针?
答案 0 :(得分:15)
非常谨慎地使用!important
- 它会覆盖几乎所有内容,甚至是内联样式,并且使用样式规则的“级联”以一种不那么显而易见的方式混淆CSS,从而赋予CSS名称。它很容易使用,并且往往会成倍增加,特别是在误用时。您可以轻松地使用要覆盖的!important
规则的元素结束,此时您经常需要重构样式,或使用其他!important
规则并解决问题。
一旦它被传播并且你在任何地方都在使用它,你就会在没有它的情况下恢复你所处的相同情况(难以指定特别足以覆盖其他风格的元素),但你也没有不再有!important
因为其他一切也在使用它。
当遇到!important
看起来很吸引人的情况 - 或者更糟糕的是,它已经在使用和传播的情况 - 如果可以的话,更愿意重构你的CSS。 (坦率地说,如果你需要在用户样式表之外!important
,通常是因为你的选择器已经太具体了,和/或你没有利用CSS中的C。)你会做得更好定义您的基本样式尽可能接近html
或body
元素,当您想要覆盖时,使用尽可能少的特异性。这样,您就有足够的空间进行更改。通常有一个理由要覆盖样式,这些情况通常可以归结为类名,页面的特定部分(读取:特定的父元素)等。
(唯一真正的例外是,如果您覆盖的样式实际上超出了您的控制范围。(例如,如果您使用的框架对您的页面看起来有很强烈的看法,那么您可能会发现很难覆盖任何东西。我已经使用了实际插入了自己的内联样式的应用程序,只有!important
规则可以覆盖它们。)如果您没有完全访问代码,请覆盖重构很容易就会比它们的价值更麻烦。你可以使用!important
来取回一些控制权,只要你知道后果。)
答案 1 :(得分:2)
我可以说的是你应该尽可能地避免它,因为这意味着存在冗余代码,并指出CSS和样式没有很好的结构。
但在某些情况下,必须使用它而无法避免。
所以尽力做到最好。
答案 2 :(得分:2)