在寫CSS樣式時,我們經常會遇到一個問題:多個CSS屬性同時作用于一個元素時該如何選擇優先級。這個問題牽扯到CSS樣式的優先級,而在DOM中,優先級的選擇根據不同選擇器的權重來進行。
權重的計算規則如下: - 對于每個選擇器的不同組成部分分別進行權重計算; - 對不同組成部分所得的權重值按位數依次排列; - 對于相同位數的權重,后出現的選擇器權重值較大,即后者優先級更高。 以下是不同組成部分的權重計算規則: - 指定一個!important: 權重值為無窮大(∞); - 寫于元素內部的style屬性: 權重值為1,0,0,0; - 每個ID選擇器: 權重值為0,1,0,0; - 每個類、偽類、屬性選擇器: 權重值為0,0,1,0; - 每個元素、偽元素選擇器: 權重值為0,0,0,1; - 通配符、相鄰兄弟、子選擇器: 權重值為0,0,0,0。 舉個例子:假如一個元素應用了以下兩條CSS屬性: p { color: red !important; font-size: 16px; } 則其權重值為∞+0+0+0+0=∞(顏色優先級更高)。 再比如,如果有以下兩個選擇器同時在同一元素上生效: #myId { color: red; /* 權重值為0,1,0,0 */ } div p { color: blue; /* 權重值為0,0,0,2 */ } 則由于后者的權重值更大,所以p元素的顏色屬性會被覆蓋為blue。 知道CSS樣式優先級的選擇規則,我們就可以在編寫CSS樣式時避免出現優先級沖突的情況,從而更好地進行樣式排版。
上一篇css里面的選擇是什么
下一篇div底部居中css