常遇見的問題:在引用bootstrap.css的網頁中,自己寫的css樣式總是被bootstrap.css的樣式覆蓋,還很難讓自己的樣式呈現,有時加
!important都不起作用。
這個就要考慮到權值的大小,先看看優先級。
選擇器的優先權
解釋:
1. 內聯樣式表的權值最高 1000;
2. ID 選擇器的權值為 100
3. Class 類選擇器的權值為 10
4. HTML 標簽選擇器的權值為 1
5 繼承樣式的權值為0.1(某些論文提出,但毫無疑問它的權值是最低的)
BTP里面的樣式權值比你重寫的要高,就會覆蓋你寫的樣式,增加選擇器的權重就可以解決問題了。
例子:
.nationalPlate>.national_top>#fontChange{
margin:0;
padding:0;
}
!important
規則例外
當在一個樣式聲明上使用 !important 規則時,該樣式聲明會覆蓋CSS中任何其他的聲明,。盡管技術上 !important 與優先級毫無關系,
但是它們之間直接相互影響。
使用 !important 是一個壞習慣,應該盡量避免,因為這打斷了樣式表中的固有的級聯規則
使得調試找bug變得更加困難了。當兩條相互沖突的帶有!important 規則的聲明被應用到相同的元素上時,
擁有更大優先級的聲明將會被采用。
一些經驗法則:
- Never 永遠不要在全站范圍的 css 上使用
!important
- Only 只在需要覆蓋全站或外部 css(例如引用的 ExtJs 或者 YUI )的特定頁面中使用
!important
- Never 永遠不要在你的插件中使用
!important
- Always 要優化考慮使用樣式規則的優先級來解決問題而不是
!important