比如有這樣一段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,始終高於外...