css選擇器的分類及優先順序計算方法…
阿新 • • 發佈:2018-12-26
首先宣告一下CSS三大特性——
繼承、
優先順序和層疊。繼承即子類元素繼承父類的樣式;優先順序是指不同類別樣式的權重比較;層疊是說當數量相同時,通過層疊(後者覆蓋前者)的樣式。
css選擇符分類
首先來看一下css選擇符(css選擇器)有哪些?
1.標籤選擇器(如:body,div,p,ul,li)
2.類選擇器(如:class="head",class="head_logo")
3.ID選擇器(如:id="name",id="name_txt")
4.全域性選擇器(如:*號)
5.組合選擇器(如:.head .head_logo,注意兩選擇器用空格鍵分開)
6.後代選擇器 (如:#head .nav ul li 從父集到子孫集的選擇器)
7.群組選擇器 div,span,img {color:Red} 即具有相同樣式的標籤分組顯示
8.繼承選擇器(如:div p,注意兩選擇器用空格鍵分開)
9.偽類選擇器(如:就是連結樣式,a元素的偽類,4種不同的狀態:link、visited、active、hover。)
10.字串匹配的屬性選擇符(^ $ *三種,分別對應開始、結尾、包含)
11.子選擇器 (如:div>p ,帶大於號>)
12.CSS 相鄰兄弟選擇器器 (如:h1+p,帶加號+)
css優先順序
CSS優先順序:是由四個級別和各級別的出現次數決定的。
四個級別分別為:行內選擇符、ID選擇符、類別選擇符、元素選擇符。
優先順序的演算法:
每個規則對應一個初始"四位數":0、0、0、0
若是 行內選擇符,則加1、0、0、0
若是 ID選擇符,則加0、1、0、0
若是 類選擇符/屬性選擇符/偽類選擇符,則分別加0、0、1、0
若是 元素選擇符/偽元素選擇符,則分別加0、0、0、1
演算法:將每條規則中,選擇符對應的數相加後得到的”四位數“,從左到右進行比較,大的優先順序越高。
需注意的:
①、!important的優先順序是最高的,但出現衝突時則需比較”四位數“;
②、優先順序相同時,則採用就近原則,選擇最後出現的樣式;
③、繼承得來的屬性,其優先順序最低;
!important > 行內樣式>ID選擇器 > 類選擇器 > 標籤 > 萬用字元 > 繼承 > 瀏覽器預設屬性
*css選擇器使用強烈建議採用低權重原則,利於充分發揮css的繼承性,複用性,模組化、元件化。
css選擇符分類
首先來看一下css選擇符(css選擇器)有哪些?
1.標籤選擇器(如:body,div,p,ul,li)
2.類選擇器(如:class="head",class="head_logo")
3.ID選擇器(如:id="name",id="name_txt")
4.全域性選擇器(如:*號)
5.組合選擇器(如:.head .head_logo,注意兩選擇器用空格鍵分開)
6.後代選擇器 (如:#head .nav ul li 從父集到子孫集的選擇器)
7.群組選擇器 div,span,img {color:Red} 即具有相同樣式的標籤分組顯示
8.繼承選擇器(如:div p,注意兩選擇器用空格鍵分開)
9.偽類選擇器(如:就是連結樣式,a元素的偽類,4種不同的狀態:link、visited、active、hover。)
10.字串匹配的屬性選擇符(^ $ *三種,分別對應開始、結尾、包含)
11.子選擇器 (如:div>p ,帶大於號>)
12.CSS 相鄰兄弟選擇器器 (如:h1+p,帶加號+)
css優先順序
CSS優先順序:是由四個級別和各級別的出現次數決定的。
四個級別分別為:行內選擇符、ID選擇符、類別選擇符、元素選擇符。
優先順序的演算法:
每個規則對應一個初始"四位數":0、0、0、0
若是 行內選擇符,則加1、0、0、0
若是 ID選擇符,則加0、1、0、0
若是 類選擇符/屬性選擇符/偽類選擇符,則分別加0、0、1、0
若是 元素選擇符/偽元素選擇符,則分別加0、0、0、1
演算法:將每條規則中,選擇符對應的數相加後得到的”四位數“,從左到右進行比較,大的優先順序越高。
需注意的:
①、!important的優先順序是最高的,但出現衝突時則需比較”四位數“;
②、優先順序相同時,則採用就近原則,選擇最後出現的樣式;
③、繼承得來的屬性,其優先順序最低;
!important > 行內樣式>ID選擇器 > 類選擇器 > 標籤 > 萬用字元 > 繼承 > 瀏覽器預設屬性
*css選擇器使用強烈建議採用低權重原則,利於充分發揮css的繼承性,複用性,模組化、元件化。