<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

    存檔

    主站蜘蛛池模板: 精品国内片67194| 国产日韩欧美精品| 国产精品视频一区二区三区| 无码人妻精品一区二| 99久久国产主播综合精品| 精品无码久久久久久午夜| 日韩精品亚洲专区在线观看| 国产精品粉嫩美女在线观看| 2022国产精品福利在线观看| 在线精品亚洲一区二区小说| 久久91精品综合国产首页| 99精品国产一区二区| 99精品国产丝袜在线拍国语| 日韩人妻无码精品一专区| 午夜精品久久影院蜜桃| 久久国产热这里只有精品| 99热都是精品久久久久久| 精品国精品国产| 国产精品岛国久久久久| 国产精品ⅴ无码大片在线看| 精品午夜福利在线观看| 亚洲欧洲成人精品香蕉网| 欧美精品人爱a欧美精品| 国产亚洲色婷婷久久99精品91| 无码精品一区二区三区免费视频| 大伊香蕉精品视频在线导航| 精品久久久久久中文字幕人妻最新| 中文精品无码中文字幕无码专区| 欧美国产精品va在线观看| 精品久久久久久99人妻| 国产中文在线亚洲精品官网| 国产精品爱搞视频网站 | 久久国产午夜精品一区二区三区| 99国内精品久久久久久久| 99久久99久久精品国产片| 99久久伊人精品综合观看| 国产99视频精品专区| 国产成人精品一区二区三区| 国产成人久久精品麻豆一区| 国产69精品久久久久99| 国内精品国产成人国产三级|