Andy的前後端技術筆記、生活紀錄
CSS的的selector的權重
發佈於: 2024-04-03 更新於: 2024-04-21 分類於: frontend > frontend_interview

selector是什麼?

是用來選擇HTML tag並設定寬、高、顏色、背景圖等等(如:H1,p,div),選擇器不僅限於標籤(div, p, span),還包含class及id。

1
2
3
4
5
6
7
.className {
color:blue;
}

div {
font-size:16px;
}

權重可以幹嘛?

在selector有四個權重,依序是 inline style > id > class > tag,這意思是說如果你對某些元素設定屬性時,權重會依照這個來做處理,也就是說如果在class及inline style裡面都設定 color,而最終HTML顯示的顏色會是由inline設定的為主,這是因為權重大小的關係。
而這四個權重會是這樣寫(0,0,0,0)對應的順序(inline, id, class, tag),所以這樣就可以看出誰的權重比較大。

1
<div style="color=yellow" class="className"><div>
1
2
3
.className {
color=blue
}

在這裡顏色就會是yellow,因為inline權重大於class

權重計算方式

1
2
3
.className1 {
color:blue;
}

(0,0,1,0)

1
2
3
.className1.className2 {
color:yellow;
}

(0,0,2,0)
上面這個會把兩個class加起來,這是要該元素同時有這兩個class存在

1
2
3
.className2 div p {
color:yellow;
}

(0,0,1,2)

!important

這個大魔王,在某些情況希望直接覆蓋掉該元素的屬性,可以在 該屬性後面加上 !important,但是不建議太常使用,會在開發上容易造成不要的困擾。

1
2
3
.className2 {
color:yellow !important;
}
--- 到底拉 The End ---