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