从可维护保养性角度考虑到css的!important标准的能

2021-03-07 06:03 jianzhan
近期在做新项目中发现许多CSS编码里边都应用!important去遮盖原来高优先选择级的款式。依照常理来讲,越是灵便的物品,必须做的工作中就会更多。因此想自然的觉得像!important这样灵便、便捷的标准假如用很多的话毫无疑问会对特性有一定的危害。根据这类考虑到,原本想把全部的这些款式根据提升优先选择级给去掉的。但是后来1想,還是去google1下吧,猜测1般全是不能靠的。

拷贝编码
编码以下:

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 标准),应用的情况下还要留意。