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.偽元素選擇器(如::before, :after, :first-line, :first-letter代表實際存在的子元素)


  9.偽類選擇器(如::link, :visited, :hover, :first-child,  :lang, :first-of-type表示狀態, p:first) //偽類、偽元素參見http://www.runoob.com/css/css-pseudo-classes.html


  10.字符串匹配的屬性選擇符(^ $ *三種,分別對應開始、結尾、包含)

  11.子選擇器 (如:div>p ,帶大於號>)

  12.CSS 相鄰兄弟選擇器器 (如:h1+p,帶加號+)

  等等,參見http://www.runoob.com/cssref/css-selectors.html

css優先級

  CSS優先級:是由四個級別和各級別的出現次數決定的。


  四個級別分別為:行內選擇符、ID選擇符、類別選擇符、元素選擇符。

  優先級的算法:

  每個規則對應一個初始"四位數":0、0、0、0

  若是 行內選擇符,則加1、0、0、0

  若是 ID選擇符,則加0、1、0、0

  若是 類選擇符/屬性選擇符/偽類選擇符,則分別加0、0、1、0

  若是 元素選擇符/偽元素選擇符,則分別加0、0、0、1

  算法:將每條規則中,選擇符對應的數相加后得到的”四位數“,從左到右進行比較,大的優先級越高。

  我們可以把選擇器中規則對應做加法,比較權值,如果權值相同那就后面的覆蓋前面的了,div.class的權值是1+10=11,而.test1 .test2的權值是10+10=20

 需注意的:

  ①、!important的優先級是最高的,但出現沖突時則需比較”四位數“;

  ②、優先級相同時,則采用就近原則,選擇最后出現的樣式;

  ③、繼承得來的屬性,其優先級最低;

  !important > 行內樣式>ID選擇器 > 類選擇器 > 標簽 > 通配符 > 繼承 > 瀏覽器默認屬性

  類選擇器的優先權大於屬性選擇器

  css選擇器使用強烈建議采用低權重原則,利於充分發揮css的繼承性,復用性,模塊化、組件化。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM