css
權重CSS
層疊性在講css
權重以前須要理解的是css
的層疊性。css
具備繼承性,層疊性。下面是對層疊性的簡單理解:css
1)同一個HTML標籤,能夠被多個選擇器選中,而且能夠被共同做用獲得最終的樣式 2)css
處理衝突的能力,相同做用的樣式經過權重來決定,並且不存在任何兼容性問題瀏覽器
css
權重若對同一個元素定義不一樣的樣式,瀏覽器會根據樣式規則的權重來決定到底對該元素運用哪一條樣式,權重值高的css
規則生效。若對樣式規則的權重不夠理解,常常會出現明明寫好的樣式死活就是不起做用的狀況。bash
注意:
1)!important提高的只是一個屬性而不是一個選擇器,正確的寫法是:
p{
color:red!important;//分號寫在最外面,添加在那個屬性上就提高哪一個屬性的權重
font-size:16px;//沒有加!important,全部不會提高權重
}
2) !important沒法提高繼承的權重,該是0仍是0
HTML結構
<div>
<p>垃圾分類</p>
</div>
css樣式
div{
color:red !important;
}
p{
color:blue;//直接被選中顯示藍色
}
3)!important不影響就近原則
HTML結構
<div>
<ul>
<li>垃圾分類</li>
</ul>
</div>
css樣式
div{
color:red !important;
}
ul{
color:blue;//都沒有被直接選中的狀況下,ul描述的更近,顯示藍色
}
4)建議少用!important
複製代碼
等級關係spa
行內樣式>ID選擇器 > 類選擇器 | 屬性選擇器 | 僞類選擇器 > 元素選擇器
複製代碼
注意:code
HTML結構
<div class='box1'>
<ul class='box2'>
<li>垃圾分類</li>
</ul>
</div>
css樣式
#box1 li{
color:red;//直接選中權重相同
}
#box2 li{
color:blue;//直接選中權重相同,按照代碼順序,本條規則在在上一條權重同樣的規則下面,顯示藍色
}
複製代碼
HTML結構
<div>
<ul>
<li>垃圾分類</li>
</ul>
</div>
css樣式
div{
color:red;//都沒有被直接選中的狀況下,div是ul的外層,深度比不上ul
}
ul{
color:blue;//都沒有被直接選中的狀況下,ul描述的更近,顯示藍色
}
複製代碼