css的優先級問題(解決bootstrap.css覆蓋自己寫的css樣式的問題)


常遇見的問題:在引用bootstrap.css的網頁中,自己寫的css樣式總是被bootstrap.css的樣式覆蓋,還很難讓自己的樣式呈現,有時加

!important都不起作用。

這個就要考慮到權值的大小,先看看優先級。

選擇器的優先權

 

jc6_002

 

解釋:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM