在 CSS 中的權重

在 CSS 中經常會遇到需要覆蓋樣式的情況,這通常涉及到 CSS 的權重問題。當多個 CSS 使用在同一個元素並且產生衝突時,就會根據權重來決定最終的樣式為何。

權重比

首先要先知道在CSS選擇器中的各個權重

選擇器:ID > Class > HTML標籤

比值:100 : 10 : 1

EX.1:

.header .title h1{ /* 權重為10+10+1 */
font-size: 24px;
}

EX.2:

#menu{ /* 權重為100 */
display: flex;
justify-content: space-between;
}

若權重相同

在選擇器的權重都相同時

最後面的會覆蓋掉前面的

EX.1:

.wrap{
background-color: #000000;
}
.wrap{ /* 覆蓋 background-color: #000000; */
background-color: #f92672;
}

!important

但如果你的CSS寫到權重非常大,階層非常多時

你會變得很難去覆蓋掉它

可以使用important

前面講的ID、Class、HTML權重都沒有important來的高

important的權重為10000

使用方法

.footer{
color: black !important; /* 權重10000,優先度最高 */
font-size: 24px !important; /* 權重10000,優先度最高 */
}

但通常到這時候,程式在維護或擴充時也會很困難麻煩

所以還是要盡量避免使用!important比較好

以上皆為自己整理的筆記,僅供參考與複習使用。

Licensed under CC BY-SA 4.0

Unless otherwise noted, content on this site is licensed under CC BY-SA 4.0. You are free to share and adapt with attribution.

CSS 階層效能優化

其實CSS階層在瀏覽器上會影響效能,但因為現今電腦性能極佳,電腦跑起來可能沒有明顯差異,就算對於電腦影響看似不大,也會衍伸出程式上的管理問題

動態規劃 DP

動態規劃 (Dynamic Programming) 簡稱DP,屬於 Divide-and-conquer 的延伸,主要可以將原問題分解為相較簡單的子問題,再通過子問題的解求出複雜問題的方法