CSS學習(三)特指度和層疊

一、特指度

特製度的一般形式是0,0,0,0

  • 行內樣式,第一位的特指度加一
  • id選擇符,第二位的特指度加一
  • 類選擇符、屬性選擇符、偽類,第三位的特指度加一
  • 元素選擇符、偽元素,第四位的特指度加一

特指度是從左向右比較的,特指度高的聲明勝出。

重要聲明:在聲明末尾的分號之前插入 !important( 重要聲明和非重要聲明衝突時,始終勝出 )

二、繼承

繼承指的是,某些樣式不僅應用到所指的元素上,還應用到元素的後代上( 最典型的就是font-family )

下面是繼承的兩個注意點:

  1. 繼承的值沒有特指度,連0都沒有,通用選擇符( * )的特指度都比他大。所以最好不要在通用選擇符裡面設置可能繼承的值( 除非你雀食要這麼做 ),以免出現零特指度戰勝無特指度的情況,導致終結繼承。
  2. 繼承的值沒有特指度,但是有的時候樣式無法繼承,可能是因為瀏覽器的內部樣式表裡面有設置該樣式( 瀏覽器設置的樣式就有了特指度,導致無法繼承 )

三、層疊

層疊規則先後順序如下

  1. 按顯示權重( !important )和來源排序( 創作人員樣式表覆蓋用戶代理樣式表 )
  2. 按特指度排序,特指度高的規則勝出
  3. 按前後位置排序,越靠後的規則勝出(由此可得鏈接樣式的推薦樣式:LVFHA)
Tags: