CSS 選擇器權重

阿榮-avatar-img
發佈於前端
更新於 發佈於 閱讀時間約 3 分鐘

CSS 樣式採用規則

當不同的 CSS 會影響同一個元素時,要怎麼判斷誰能被採用呢?先透過權重來判斷誰的優先度較高;那如果優先級相等,接著看順序,後面的樣式會覆蓋過前面的,口訣:「先看權重,再看誰後」。這裡的順序指的是 CSS 檔樣式被撰寫的順序,而不是 HTML 的 class 書寫順序。

如下面範例:權重相同,再來判斷 CSS 樣式順序 (HTML 故意寫相反順序,但不造成影響),最終套用的樣式會是藍字。

<!-- html --> 
<h1 class="blue red"></h1>
/* CSS */
​.red {
color: red;
}

​.blue {
color: blue;
}


樣式權重彙整 (大到小)

!important (1 - 0 - 0 - 0 - 0)

寫在 CSS 屬性後方

.red { 
color: red; !important
}

權如其名,!important 就是最重要的,優先級比其他樣式高,加了可以確保樣式勝出。看起來很好用?BUT!!如果加了,就很難再被其他樣式覆蓋,只能繼續用 !important 來壓過它,用太多彈性差且不好維護,應盡量避免使用。


Inline Styles (1 - 0 - 0 - 0)

寫在 HTML 標籤上的 style

<div style="color:blue"> inline styles </div>


id (0 - 1 - 0 - 0)

<h1 id="green">Hello World!</h1>

// CSS

#green {
color: green;
}


class / psuedo-class / attribute (0 - 0 - 1 - 0)

  1. class (0 - 0 - 1 - 0)
.myclass {
color: green;
}


  1. psuedo-class (0 - 0 - 1 - 0)
a:hover {
color: red;
}

這個範例除了 psuedo-class 外,還有a 標籤權重為 (0 - 0 - 0 - 1),總權重為 (0 - 0 - 1 - 1)。


  1. attribute (0 - 0 - 1 - 0)
[title="example"] {
font-style: italic;
}


element (0 - 0 - 0 - 1)

p {
color: blue;
}


* 通用選擇器/ 全站預設值 (0 - 0 - 0 - 0)

*{    
padding: 0
margin: 0
}


總結

!important > inline style > id> class=psuedo-class=attribute > element > *

資料來源

留言
avatar-img
留言分享你的想法!
avatar-img
阿榮 | 前端 ~ 互動藝術程式
2會員
39內容數
主要放程式學習筆記,分享 Creative Coding 相關內容、作品
2024/04/19
避免網頁在不同瀏覽器中長不一樣。用 CSS Reset 來「重置」和統一瀏覽器預設樣式。
Thumbnail
2024/04/19
避免網頁在不同瀏覽器中長不一樣。用 CSS Reset 來「重置」和統一瀏覽器預設樣式。
Thumbnail
2024/04/15
2024/04/15
2024/04/12
針對 JavaScript 中的原始型別和隱性轉型進行了詳細的探討
Thumbnail
2024/04/12
針對 JavaScript 中的原始型別和隱性轉型進行了詳細的探討
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
在本章中,我們探討了CSS Grid佈局的基本概念和應用。CSS Grid提供了一個強大而靈活的二維佈局系統,使得處理複雜的網頁佈局變得更加簡單和直觀。我們學習了如何設置Grid容器和Grid項目,以及如何使用各種Grid屬性來定義和管理佈局。
Thumbnail
在本章中,我們探討了CSS Grid佈局的基本概念和應用。CSS Grid提供了一個強大而靈活的二維佈局系統,使得處理複雜的網頁佈局變得更加簡單和直觀。我們學習了如何設置Grid容器和Grid項目,以及如何使用各種Grid屬性來定義和管理佈局。
Thumbnail
本章介紹了 CSS 中的顏色和背景屬性,包括文本顏色的設置方法、背景顏色和背景圖片的應用、背景重複和位置的配置,以及線性漸變和徑向漸變的使用。這些知識將幫助你更靈活地設計和美化網頁。
Thumbnail
本章介紹了 CSS 中的顏色和背景屬性,包括文本顏色的設置方法、背景顏色和背景圖片的應用、背景重複和位置的配置,以及線性漸變和徑向漸變的使用。這些知識將幫助你更靈活地設計和美化網頁。
Thumbnail
CSS入門-Day3 的主要內容包括字體大小、字體顏色、字體系列、字體樣式、字體粗細等屬性。此外,還涵蓋了文本對齊、行高、文字間距、單詞間距和文本裝飾。最後,介紹了如何引入和使用 Google 字體,以提高網頁的排版效果。
Thumbnail
CSS入門-Day3 的主要內容包括字體大小、字體顏色、字體系列、字體樣式、字體粗細等屬性。此外,還涵蓋了文本對齊、行高、文字間距、單詞間距和文本裝飾。最後,介紹了如何引入和使用 Google 字體,以提高網頁的排版效果。
Thumbnail
這節課的學習目標是了解 CSS 的基本語法結構和使用方法。
Thumbnail
這節課的學習目標是了解 CSS 的基本語法結構和使用方法。
Thumbnail
CSS 是控制網頁外觀的語言,應用於網頁設計、UI/UX 設計、電子商務和移動應用開發。主要使用者包括前端開發者、UI/UX 設計師和網頁設計師。CSS 的特性有樣式控制、層疊優先級、響應式設計及分離內容與樣式。
Thumbnail
CSS 是控制網頁外觀的語言,應用於網頁設計、UI/UX 設計、電子商務和移動應用開發。主要使用者包括前端開發者、UI/UX 設計師和網頁設計師。CSS 的特性有樣式控制、層疊優先級、響應式設計及分離內容與樣式。
Thumbnail
CSS 的繼承性是開發網頁樣式時的一個重要概念,它使得樣式設計更加靈活和高效,有助於提高程式碼的可讀性、一致性和可重用性,並加快開發速度,從而提供更好的開發體驗。
Thumbnail
CSS 的繼承性是開發網頁樣式時的一個重要概念,它使得樣式設計更加靈活和高效,有助於提高程式碼的可讀性、一致性和可重用性,並加快開發速度,從而提供更好的開發體驗。
Thumbnail
這是一篇關於CSS Battle系列的文章,介紹瞭如何通過CSS來處理特定圖案的切版與前端工程技術。文章分享了使用grid和radial-gradient()方法來處理特定圖案的解法以及相關技術總結。
Thumbnail
這是一篇關於CSS Battle系列的文章,介紹瞭如何通過CSS來處理特定圖案的切版與前端工程技術。文章分享了使用grid和radial-gradient()方法來處理特定圖案的解法以及相關技術總結。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News