亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解CSS中的選擇器優(yōu)先級順序

簡書   發(fā)布時間:2016-06-21 11:59:40   作者:牧歌_   我要評論
CSS在使用選擇器對元素施加屬性的時候會有先后順序,包括特殊性和重要性等概念在內(nèi),這里我們就來詳解CSS中的選擇器優(yōu)先級順序,需要的朋友可以參考下

特殊性是什么
在對一個HTML元素應用CSS樣式時,常常有很多種方法可以找到元素,比如:

CSS Code復制內(nèi)容到剪貼板
  1. <div id="container" class="wrap_sty">   
  2.     <p class="pra">這是一個段落</p>   
  3. </div>   
  4. <style>   
  5.     #container p { color:red }   
  6.     div p { color:green }   
  7.     p { color:yellow }    
  8. </style>  

可見,如果要作用到一個HTML元素的方法有很多,遠遠不止這些。那么如果一個元素被應用了很多同樣的樣式,最終會顯式到哪一個樣式呢?CSS對于多個選擇器的優(yōu)先性使用了一個叫做特殊性的方式。

CSS特殊性
選擇器的特殊性分為4個等級,a b c d,從左到右,越左邊的越優(yōu)先, 如果一個選擇器規(guī)則有多個相同類型選擇器,則+1。
如果是HTML內(nèi)樣式,那么特殊性最優(yōu)先,a=1
id選擇器的特殊性是b,
類選擇器、偽類選擇器、屬性選擇器為c
標簽選擇器、偽元素選擇器為d
先來說說一些選擇器類型:
1.id選擇器

CSS Code復制內(nèi)容到剪貼板
  1. #myid { ... }  

2.類選擇器

CSS Code復制內(nèi)容到剪貼板
  1. .myclass { ... }  

3.標簽選擇器

CSS Code復制內(nèi)容到剪貼板
  1. p { ... }  

4.屬性選擇器

CSS Code復制內(nèi)容到剪貼板
  1. [title="mytitle"] { ... }  

由于大多數(shù)文檔例如W3CSCHOOL可能并沒有詳細說明,或許不少人認為屬性選擇器是這樣的  div[title="mytitle"] 或#id[title="mytitle"]等等,這樣是屬性選擇器,嚴格來說,這樣的并非單純的屬性選擇器,而是由id選擇器、標簽選擇器等等和屬性選擇共同組成的。
5.偽類選擇器

CSS Code復制內(nèi)容到剪貼板
  1. p:hover { ... }  

常見的偽類選擇器有:
鏈接偽類,:link, :visited,用于錨元素。
動態(tài)偽類,:hover,:focus,:active,用于任何選擇。
6.偽元素選擇器

CSS Code復制內(nèi)容到剪貼板
  1. p::after { ... }   
  2. p::before { ... }  

偽元素和偽類是完全不同的概念,之所以稱之為偽元素,因為其確實可以生成一個虛擬的HTML元素,只不過偽元素無法被DOM獲取到。
偽元素的應用有很多,最常見的比如::after清除浮動:

CSS Code復制內(nèi)容到剪貼板
  1. <ul>   
  2.     <li>A</li>   
  3.     <li>B</li>   
  4. </ul>   
  5. <style>   
  6.     li { float:left }   
  7.     ul::after { content""displayblockclearboth }   
  8. </style>  

CSS特殊性示例
下面是一些CSS選擇器的特殊性示例:

選擇器 特殊性 以10為基數(shù)的特殊性
style="color: red" 1, 0, 0, 0 1000
#id {} 0, 1, 0, 0 100
#id #aid 0, 2, 0, 0 200
.sty {} 0, 0, 1, 0 10
.sty p[title=""] {} 0, 0, 2, 0 20
p:hover {} 0, 0, 1, 0 10
p {} 0, 0, 0, 1 1
ul::after {} 0, 0, 0, 1 1
div p {} 0, 0, 0, 2 2

如果兩個規(guī)則的特殊性相同,那么后定義的會覆蓋先定義的。

CSS重要性
CSS中還有一種東西可以無視特殊性,那就是!important,使用此標記的CSS屬性總是最優(yōu)先的。

CSS Code復制內(nèi)容到剪貼板
  1. #id { colorred }   
  2. .class { coloryellow !important }  

第二個樣式會優(yōu)先于第一個樣式,即使id選擇器的特殊性高于類選擇器。
如果兩個屬性都有 !important 那么由特殊性來決定優(yōu)先級。

CSS Code復制內(nèi)容到剪貼板
  1. #id { colorred !important }   
  2. .class { coloryellow !important }  

結(jié)果是第一個樣式優(yōu)先于第二個樣式。
IE6對 !important 的支持并不完全,在IE6中,如果一個選擇器中先定義了 !important 屬性,后面又定義了一個同樣的不帶 !important 的屬性,那么!important 會失效。

CSS Code復制內(nèi)容到剪貼板
  1. div {   
  2.   coloryellow !important;     
  3.   colorred;   
  4. }  

在IE6中,可就沒辦法黃了,還是見點血吧!
IE6/7還可以在 !important 后面加點料,也不會失去味道,但是建議別這么無聊!

CSS Code復制內(nèi)容到剪貼板
  1. div {   
  2.   coloryellow !important you are dead;   /* IE6/7依然有效 */  
  3. }  

相關(guān)文章

  • CSS優(yōu)先級計算的規(guī)則

    這篇文章主要介紹了CSS優(yōu)先級計算的規(guī)則,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-17
  • css優(yōu)先級計算方法(推薦)

    下面小編就為大家?guī)硪黄猚ss優(yōu)先級計算方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-19
  • 詳解CSS中的選擇器優(yōu)先級及樣式層疊問題解決

    CSS中的選擇器是分權(quán)重的,如果不加注意則很有可能會遇到樣式層疊的問題,下面我們就來詳解CSS中的選擇器優(yōu)先級及樣式層疊問題解決,需要的朋友可以參考下
    2016-06-14
  • CSS z-index 層級關(guān)系優(yōu)先級的概念

    這篇文章主要介紹CSS z-index 層級關(guān)系優(yōu)先級的概念,講解的比較詳細,需要的朋友可以參考下。
    2016-06-06
  • CSS優(yōu)先級的兩種理解方式

    本文給大家分享css 優(yōu)先級的兩種理解方式,每種方式給大家介紹的非常詳細,需要的朋友參考下吧
    2020-02-06

最新評論