手机
当前位置:查字典教程网 >网页设计 > Div+Css教程 >从可维护性角度考虑css的!important规则的可用性
从可维护性角度考虑css的!important规则的可用性
摘要:最近在做项目中发现很多CSS代码里面都使用!important去覆盖原有高优先级的样式。按照常理来说,越是灵活的东西,需要做的工作就会更多。...

最近在做项目中发现很多CSS代码里面都使用!important去覆盖原有高优先级的样式。按照常理来说,越是灵活的东西,需要做的工作就会更多。所以想当然的认为像!important这样灵活、方便的规则如果用得多的话肯定会对性能有所影响。基于这种考虑,本来想把所有的这些样式通过提高优先级给去掉的。不过后来一想,还是去google一下吧,猜想一般都是不可靠的。

if (aIsImportant) {

if (!HasImportantBit(aPropID))

changed = PR_TRUE;

SetImportantBit(aPropID);

} else {

// ...

/**

* Transfer the state for |aPropID| (which may be a shorthand)

* from |aFromBlock| to this block. The property being transferred

* is !important if |aIsImportant| is true, and should replace an

* existing !important property regardless of its own importance

* if |aOverrideImportant| is true.

*

* ...

*/

从上面可以看出,firefox对于!important规则的判断很简单:将包含!important的样式直接覆盖了正常生成的样式规则,然后如果解析到后面还有!important规则时,再和以前的important规则比较优先级。就是说,使用!important的CSS规则是置为了最高优先级,然后最高优先级中去判断应用那个样式。

结论就是,使用!important对于性能并没有什么负面影响。但是从可维护性角度考虑还是少用这个规则。不过这个规则在IE6中有bug(IE6 IE7(Q) IE8(Q) 不完全支持 !important 规则),使用的时候还要注意。

【从可维护性角度考虑css的!important规则的可用性】相关文章:

CSS层叠样式表的层叠是什么意思

CSS定义DIV圆角边框

详解CSS的规范及技巧

火狐在用offsetHeight获取div的高度时为0的解决方法

Ext Grid控件的配置与方法

CSS等比列放大缩小效果

CSS控制Table内外边框、颜色、大小示例

Firefox和IE通用的三则网站重构实用技巧

CSS书写规范及书写顺序的方法

清除浮动clear:both的应用详解

精品推荐
分类导航