當我們在編寫CSS樣式表時,往往會遇到多個樣式規則同時作用于同一個元素的情況,這時就需要確定哪個樣式規則會被最終執行。這個問題就涉及到CSS優先級,也就是CSS選擇器適用的相關規則。
CSS 優先級計算規則如下: 1. !important聲明的樣式具有最高優先級,將覆蓋其他所有樣式。 2. 行內樣式具有高于內部和外部樣式的優先級。 3. ID選擇器的優先級要高于class、偽類和元素選擇器。 4. 多個class、偽類和元素選擇器權重相等,根據數目相加來計算優先級。 5. 嵌套規則也會影響優先級。內部規則的優先級高于外部規則。
關于CSS優先級,有一個非常重要的概念就是“就近原則”。這個原則指的是當多個樣式規則都適用于同一個元素時,最終應用的樣式規則將是最近的那個。也就是說,距離被應用的元素最近的樣式規則將會優先被應用。
我們可以通過Firebug或Chrome的開發者工具來檢查元素應用的樣式規則,如下圖所示:
div { background-color: red; } .container div { background-color: blue; } #main div { background-color: green; }
對于上述的樣式規則,如果我們的HTML元素如下:
<div class="container"> <div id="main"></div> </div>
這個HTML元素將會被應用最后一個規則,即background-color: green。因為它離#main元素最近。
總的來說,優先級并不是一個復雜的東西,重要的是我們需要知道優先級的計算方式,并遵循“就近原則”確定最終應用的樣式規則。只有這樣才能充分控制我們的CSS代碼,讓網頁呈現出理想的效果。
上一篇css優化 問題