css選擇器優先順序

2021-07-05 04:56:38 字數 1471 閱讀 9393

比如有這樣一段html**:

id='blakefez'>blakefezdiv>

div

#blakefez

style>

那麼這時候,上面的blakefez會顯示上面顏色呢?這裡就要考慮到css選擇器的優先順序。css選擇器的優先順序是由重要性、特殊性、疊層這三個因素決定的。

①、重要性

什麼是重要性呢?就是看css值後面有沒有加上 !important。如果有加上,就說明具有重要性,如果沒有,則不具有。重要性在這三個因素中起到最大的作用。有重要性的css樣式,優先順序最高。比如這樣的**:

id='blakefez'>blakefezdiv>

div

#blakefez

style>

那麼blakefez這個字串就會顯示為紅色。

如果css選擇器都具有重要性,或者都不具有重要性,那麼就看誰的特殊性大,特殊性大的選擇器優先順序高。

②、特殊性

選擇器的特殊性由四位數組成,即: 0,0,0,0。這四位數的值是通過計算而得來的。計算的規則如下:

內聯樣式加:1,0,0,0 //比如:style="color:red;">reddiv>

id選擇器加:0,1,0,0 //比如:#id2

類、屬性、偽類加:0,0,1,0

元素、偽元素加:0,0,0,1

通配選擇器加:0,0,0,0

繼承而來的加無

比如有如下**:

class="divtest">

id="spantest">

data-em=1

id="emtest">blakefezem>

span>

div>

em#emtest

/*選擇器a*/

#spantest

#emtest

/*選擇器b*/

divspan

em /*選擇器c*/

.divtest

span

[data-em=1]

/*選擇器d*/

style>

我們來算一下各選擇器的特殊性。

選擇器a:

由乙個元素選擇器和乙個id選擇器組成,所以它的特殊性為 0,1,0,1

選擇器b:

由兩個id選擇器組成,所以它的特殊性為 0,2,0,0

選擇器c:

由三個元素選擇器組成,所以它的特殊性為 0,0,0,3

選擇器d:

由乙個類選擇器、乙個屬性選擇器和乙個元素選擇器組成,所以它的特殊性為 0,0,2,1

綜上所述,選擇器b的特殊性最高,所以,blakefez字串最終顯示為綠色。

如果兩個選擇器的重要性跟特殊性都一樣的,這時候就用疊層來決定。疊層的含義其實很簡單,就是後出現在文件流中的選擇器的樣式會覆蓋先出現選擇器的樣式。

選擇器優先順序 CSS選擇器優先順序總結

css選擇器優先順序這個問題,相信有點經驗前端都會認為非常簡單,但是我們今天還是來總結一下吧。相信大家應該很少直接在html頁面寫樣式吧,一般都是用link標籤匯入css樣式表。使用者自定義樣式表就是我們用link標籤引入的css樣式表,為了保持不同瀏覽器下樣式相同,所以我們的自定義樣式表一般都會覆...

CSS 選擇器優先順序

css優先順序包含四個級別 文內選擇器,id選擇器,class選擇器,元素選擇器 以及各級別出現的次數。根據這四個級別出現的次數計算得到css的優先順序。css優先順序的計算規則如下 頁面中直接設定style,加1,0,0,0 每個id選擇器 如 id 加0,1,0,0 每個class選擇器 如 c...

css選擇器優先順序

css優先順序即css樣式在瀏覽器中被解析出來的先後順序。css優先順序包含四個級別 行內樣式,id選擇符,class類選擇符,元素選擇符 以及各級別出現的次數。繼承是css的乙個主要特徵,然後繼承的權重很低,比普通元素還要低。1.行內樣式 類似css 的樣式 的優先順序為1,0,0,0,始終高於外...