(1)如果一條宣告來自style屬性,也就是內聯樣式,那麼它具有最高的優先順序。如果不是,則轉入第二步。
(2)計算id選擇符的數目。數目最大的宣告具有最高的優先順序。如果兩個或多個宣告具有相同的id選擇符的數目(包括0),則轉入第三步。
(3)計算類選擇符、屬性選擇符和偽類選擇符的數目。總數最大的宣告具有最高的優先順序。如果兩個或多個宣告具有相同的總數,則轉入第四步。
(4)計算型別選擇符和偽元素選擇符的數目。總數最大的宣告具有最高的優先順序。如果兩個或多個宣告具有相同的總數,則最後面的宣告獲得最高的優先權。
在實際應用中,我們可以採用用逗號分隔的四個數字的形式來計算優先順序,即a,b,c,d。重要程度從左到右依次降低。
計算選擇符的優先順序如下所示:
紅色
body #index div#container p.color
首先來分析第一條**。因為p標籤中使用了style屬性,這是乙個內聯樣式,所以a的值為1,優先順序可以表示為1,0,0,0。
然後分析第二條**。規則中的選擇符包括兩個id選擇符#index和#container,乙個類選擇符.color,三個型別選擇符body、div和p。則優先順序可表示為0,2,1,3。
比較第一位的數字,因為1比0大,所以內聯樣式的優先順序高。
先來看幾行**:
猜猜標題的顏色是紅色還是藍色?
如果你以為是紅色那就錯了,答案是藍色。
因為通配選擇符的優先順序為0,所有的組合符的優先順序均為0,。也就是說在計算的時候可以忽略它們。如果通配選擇符不是選擇符中的唯一元件,則它是可以省略的。在上述**中,兩個規則中的選擇符其實是等價的,加不加通配選擇符都一樣。
但是有一種情況例外,那就是通配選擇符在中間的時候。請看下面的**:
藍色
顯示結果:
選擇符body * span匹配的是span中的「html5」,而不匹配span中的「藍色」。在這種情況下,通配選擇符是不能省略的。
對於通過link標籤引入的外部樣式表,在其他條件相同的情況下,後面的樣式表中的宣告的優先順序要高。而對於通過style標籤引入的內部樣式表和通過link標籤引入的外部樣式表同時存在的情況下,很多人存在一種誤解,認為內部樣式表中的宣告會自動覆蓋外部樣式中的宣告。實際上,如果在內部樣式表之後通過link標籤引入外部樣式表,那麼外部樣式表中的宣告將會覆蓋內部樣式表中的宣告。
在上面的**中通過在style標籤之後link標籤引入外部樣式表如下:
body * span
顯示結果:
css選擇符的優先順序
css 選擇符有哪些?哪些屬性可以繼承?優先順序演算法如何計算?css3新增偽類有那些?一 css的選擇符有哪些?1.id選擇器 myid 2.類選擇器 myclassname 3.標籤選擇器 div,h1,p 4.相鄰選擇器 h1 p 5.子選擇器 ul li 6.後代選擇器 li a 7.萬用字...
CSS選擇符 屬性選擇符
使用屬性選擇器可以篩選出設定了特定屬性的標籤。例如選取所有設定了title屬性的 img title 這種選擇符的第一部分是標籤名 img 隨後是屬性名,放在方括號裡 title css不限制屬性選擇符只能使用標籤名,也可以使用類。例如 photo title 用於選取類為photo,而且設定了ti...
CSS選擇符 型別選擇符
h1用於選取特定html標籤的選擇符,叫型別選擇符或元素選擇符。這種選擇符的作用特別大。能把樣式應用到網頁中的每個目標標籤上。使用這種選擇符,只需少量工作就能大幅修改網頁的外觀。假如想讓網頁中每個段落都使用相同的字型 顏色和字型大小,只需編寫乙個選擇符為p 表示標籤 的樣式即可。html 最基本的佐...