<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • css樣式表中的樣式覆蓋順序,兩個class同時存在會怎樣?

    2018-8-6    seo達人

    如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

    有時候在寫CSS的過程中,某些限制總是不起作用,這就涉及了CSS樣式覆蓋的問題,如下

    Css代碼 

    1. #navigator {  
    2.     height: 100%;  
    3.     width: 200;  
    4.     position: absolute;  
    5.     left: 0;  
    6.     border: solid 2 #EEE;  
    7. }  
    8.   
    9. .current_block {  
    10.     border: solid 2 #AE0;  
    11. }  

    查找一些教材中(w3schools等),只說css的順序是“元素上的style” > “文件頭上的style元素” >“外部樣式文件”,但對于樣式文件中的多個相同樣式的優先級怎樣排列,沒有詳細說明。經過測試和繼續搜索,得知優先級如下排列:

     

    1. 樣式表的元素選擇器選擇越,則其中的樣式優先級越高:

    id選擇器指定的樣式 > 類選擇器指定的樣式 > 元素類型選擇器指定的樣式

    所以上例中,#navigator的樣式優先級大于.current_block的優先級,及時.current_block是添加的,也不起作用。

    2. 對于相同類型選擇器制定的樣式,在樣式表文件中,越靠后的優先級越高

    注意,這里是樣式表文件中越靠后的優先級越高,而不是在元素class出現的順序。比如.class2 在樣式表中出現在.class1之后:

    Css代碼 

    1. .class1 {  
    2.     color: black;  
    3. }  
    4.   
    5. .class2 {  
    6.     color: red;  
    7. }  

    而某個元素指定class時采用 class="class2 class1"這種方式指定,此時雖然class1在元素中指定時排在class2的后面,但因為在樣式表文件中class1處于class2前面,此時仍然是class2的優先級更高,color的屬性為red,而非black。

     

    3. 如果要讓某個樣式的優先級變高,可以使用!important來指定:

    Css代碼 

    1. .class1 {  
    2.     color: black !important;  
    3. }  
    4.   
    5. .class2 {  
    6.     color: red;  
    7. }  

     此時class將使用black,而非red。

    對于一開始遇到的問題,有兩種解決方案:

    1. 將border從#navigator中拿出來,放到一個class .block中,而.block放到.current_block之前:

    Css代碼 

    1. #navigator {  
    2.     height: 100%;  
    3.     width: 200;  
    4.     position: absolute;  
    5.     left: 0;  
    6. }  
    7.   
    8. .block {  
    9.     border: solid 2 #EEE;  
    10. }  
    11.   
    12. .current_block {  
    13.     border: solid 2 #AE0;  
    14. }  

     需要莫仁為#navigator元素指定class="block"

    2. 使用!important:

    Css代碼 

    1. #navigator {  
    2.     height: 100%;  
    3.     width: 200;  
    4.     position: absolute;  
    5.     left: 0;  
    6.     border: solid 2 #EEE;  
    7. }  
    8.   
    9. .current_block {  
    10.     border: solid 2 #AE0 !important;  
    11. }  

     此時無需作任何其他改動即可生效。可見第二種方案更簡單一些。 


    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://www.skdbbs.com

    存檔

    主站蜘蛛池模板: 91精品国产91久久综合| 国产精品久久久99| 国产精品亚洲欧美大片在线观看| 日韩精品视频一区二区三区| 国产午夜精品理论片久久| 99国产精品久久久久久久成人热| 综合久久精品色| 精品露脸国产偷人在视频| 国产精品久久久久久搜索| 亚洲国产精品SSS在线观看AV | 久久er热视频在这里精品| 精品麻豆丝袜高跟鞋AV| 中文字幕一区二区三区日韩精品 | 亚洲精品岛国片在线观看| 国产精品va在线观看无码| 国产成人精品日本亚洲网站| 无码国产精品一区二区免费模式| 久热精品视频第一页| 国产欧美精品一区二区色综合| 北条麻妃国产九九九精品视频| 久久国产精品久久精品国产| 97久久超碰成人精品网站| 久久99国产综合精品| 亚洲av日韩精品久久久久久a| 亚洲国产精品无码久久青草| 青青热久久国产久精品 | 亚洲精品国产福利一二区| 欧美精品色精品一区二区三区| 精品a在线观看| 国产日韩久久久精品影院首页| www.精品| 精品国产一区二区22| 久久久无码精品午夜| 人妻少妇精品无码专区动漫| 日韩精品欧美亚洲| 一本精品中文字幕在线| 亚洲国产精品久久久天堂| 精品偷自拍另类在线观看| 国产精品日本一区二区在线播放| 国产成人精品无码一区二区| 国产精品久久成人影院|