css的 important規則對效能有影響嗎

2022-07-08 04:24:10 字數 1121 閱讀 3238

最近在做專案中發現很多css**裡面都使用!important去覆蓋原有高優先順序的樣式。按照常理來說,越是靈活的東西,需要做的工作就會更多。所以想當然的認為像!important這樣靈活、方便的規則如果用得多的話肯定會對效能有所影響。基於這種考慮,本來想把所有的這些樣式通過提高優先順序給去掉的。不過後來一想,還是去google一下吧,猜想一般都是不可靠的。於是查到了這篇文章is !important bad for performance?。下面是大概意思:

firefox對於css的解析**/source/layout/style/nscssdatablock.cpp#562對於important的處理是這樣的:

if

(aisimportant)

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中important屬性,這段時間調整頁面,看到了這個屬性,了解一下並在修改bug過程中簡單的用了一下。important這個規則對ie6.0,ie7.0和firefox能寫hack 對於ie系列瀏覽器都能夠識別,firefox 瀏覽器則不能識別 importa...

CSS中 important的使用

本篇文章使用最新的ie10以及firefox與chrome測試 截止2013年5月27日22 23 22 css的原理 我們知道,css寫在不同的地方有不同的優先順序,css檔案中的定義 元素style中的屬性,但是如果使用 important,事情就會變得不一樣。首先,先看下面一段 測試css中的...

CSS中 !important 的使用

important作用是提高指定css樣式規則的應用優先權 在css中,通過對某一樣式宣告 important 可以更改預設的css樣式優先順序規則,使該條樣式屬性宣告具有最高優先順序,也就是相當於寫在最下面。一般地,css檔案中的定義 元素style中的屬性 測試css中的 important區別...