WEB ◆ TS Library ◆ 熱衷分享 ◆ 享受教學相長 ◆ 無形的網絡擁有熱情溫度的傳遞
網頁設計基礎課程目錄

1-6. CSS優先權問題 ...


優先權問題

以 CSS 撰寫位置來比較

行內 CSS 樣式 > 文件樣式

【文件樣式】分:【外部獨立儲存的 CSS 檔案】(連結式) 及【HTML檔案中的 <style> 區域】(內嵌式)

如果 CSS 規則名稱是一樣的,原則上二者的規則名稱優先權是一樣的,而後者會取代前者

以 CSS 規則名稱來比較

原則上 ID 名稱 > class 名稱 > tag 標籤名稱

      <style> 
#testarea { background-color:green; } /* 在ID名稱中, 設定為綠色背景 */ .block { background-color:blue; } /* 在class名稱中, 設定為藍色背景 */ div { background-color:red; } /* 在標籤名稱中, 設定為紅色背景 */ main .block { background-color:yellow; } /* 在複合規則中, 設定為黃色背景 */ main div { background-color:gray; } /* 在複合規則中, 設定為灰色背景 */
</style> </html> <body>
<main> <div id="testarea" class="block"> 這裡是測試區域 </div> </main>
</body>

優先權重比例分數

權重比例: ID * 100, class * 10, 標籤 * 1, ——– 行內樣式 * 1000

權重計算結果:
0,1,0,0   >   0,0,1,1   >   0,0,1,0   >   0,0,0,2   >   0,0,0,1
#testarea   main .block   .block   main div   div

※如果在屬性內容值的後面加 !important 則優先權更高,比行內樣式高 (猶如 * 10000)。
 撰寫方式例如:div { background-color:red !important; }

如果選取器名稱中有:冒號類時,例如 :hover:nth-of-type(n)::before ..., 這些雷同 class 名稱 * 10

看看範例結果

瀏覽器支援狀況