CSS樣式優先順序計算方法

2021-09-14 03:29:04 字數 1205 閱讀 5228

一、什麼是css優先順序?

所謂css優先順序,即是指css樣式在瀏覽器中被解析的先後順序。當同乙個元素(或內容)被多個css選擇符選中時,就要按照優先權取捨不同的css規則。

二、為什麼要研究css優先順序?css優先順序與門戶系統有什麼關係?

研究css優先順序的主要目的就是解決多個css選擇符選中同乙個元素時的衝突問題。在門戶系統中,為了保證所有的頁面能正常展示,幾乎所有的微件及頁面都有基礎css樣式,但是門戶系統是開放的、個性化的平台,大部分樣式都給予了使用者修改權,這時自定義樣式和門戶基本樣式就有可能產生衝突,合理使用css優先順序可以完美的解決這些衝突。

三、css優先順序規則

◎ 每個id選擇符(#someid),加 0,1,0,0。

◎ 每個class選擇符(.someclass)、每個屬性選擇符(形如[attr=」"]等)、每個偽類(形如:hover等)加0,0,1,0

◎ 每個元素或偽元素(:firstchild)等,加0,0,0,1

◎ 其他選擇符包括全域性選擇符*,加0,0,0,0。相當於沒加,不過這也是一種specificity,後面會解釋。

按這些規則將數字串逐位相加,就得到最終計算得的specificity,然後在比較取捨時按照從左到右的順序逐位比較。

這樣的說明或許過於複雜,具體示例如下,當兩種選擇符選中同乙個元素時,優先順序規則如下:

h1 /* 只有乙個普通元素加成,結果是 0,0,0,1 */

body h1

/* 兩個普通元素加成,結果是 0,0,0,2 */

——後者勝出

h2.grape

/* 乙個普通元素、乙個class選擇符加成,結果是 0,0,1,1*/

h2 /*乙個普通元素,結果是 0,0,0,1 */

——前者勝出

html > body table tr[id=」totals」] td ul > li

/* 7個普通元素、乙個屬性選擇符、兩個其他選擇符,結果是0,0,1,7 */

li#answer

/* 乙個id選擇符,乙個普通選擇符,結果是0,1,0,1 */

——後者勝出

從這裡可以總結乙個整體的規則即 id>class>普通元素 , 同類選擇符條件下層級越多的優先順序越高。

除了上面的specificity還有一些其他規則

◎ 文內的樣式優先順序為1,0,0,0,所以始終高於外部定義。這裡文內樣式指形如

blah

的樣式

css優先順序計算方法 推薦

主要的css選擇器有id,class,twww.cppcns.comag,等,而通常需要對其優先順序進行判斷的有id,class,tag,另外內聯樣式和 important也和css的優先順序有關係。如果將這五種不同情況的優先順序以數字的形式來表示的話,其對應關係如下 important 10000...

css樣式優先順序

多重樣式將層疊為乙個 樣式表允許以多種方式規定樣式資訊。樣式可以規定在單個的 html 元素中,在 html 頁的頭元素中,或在乙個外部的 css 檔案中。甚至可以在同乙個 html 文件內部引用多個外部樣式表。層疊次序 當同乙個 html 元素被不止乙個樣式定義時,會使用哪個樣式呢?一般而言,所有...

CSS樣式優先順序

css樣式分為內聯樣式和外部樣式,一般情況下 內聯樣式的優先順序大於外部樣式。即style樣式 id選擇器 class選擇器 元素選擇器。例如 on person num li當對li標籤新增上面兩個樣式時,on樣式中重複的內容是不會生效的。因為.on樣式的優先順序值小於li,它會被li樣式覆蓋。但...