在css中,會根據選擇器的特殊性來決定所定義的樣式規則的次序,具有更特殊選擇器的規則優先於具有一般選擇器的規則。
各種選擇器的特殊值:
(1)內聯樣式的特殊值:1 0 0 0
(2)id選擇器的特殊值為:0 1 0 0
(3)類選擇器、屬性選擇器、偽類的特殊值為:0 0 1 0
(4)元素選擇器、偽元素的特殊值為:0 0 0 1
(5)如果宣告了重要性!important ,特殊值為1 0 0 0,但它高於內聯樣式的特殊值。
(6)通用選擇器(*),子選擇器(>)和相鄰同胞選擇器(+)並不在這四個等級中,所以他們的特殊值都為0
例如:css層疊樣式
有如下幾套樣式指向p元素:
p;//特殊值為0 0 0 1
div .div1//特殊值為 0 0 1 1
.div//特殊值為0 0 1 0
這裡因為第二個規則的特殊值最大,所以p元素內文字的顏色為黑色。
如果p;
那麼p元素文字內的顏色為紅色,因為宣告了重要性,優先順序高於其他所有規則。
**有三種:程式設計人員定義樣式、使用者自定義樣式、瀏覽器**樣式
結合重要宣告!important,它們的權重從大到小排序:
(1)、使用者自定義重要宣告
(2)、程式設計人員重要宣告
(3)、程式設計人員正常宣告
(4)、使用者自定義正常宣告
(5)、瀏覽器**宣告
2、按順序:(如果兩個規格的權重、**和特殊性相同,那個在樣式表中的後乙個會勝出)
例:h1
h1結果:h1的文字內容的顏色為黑色。
css層疊規則
網頁上的元素其實是三維的,類似於高中學的左手座標系,z軸就是垂直於螢幕。層疊上下文跟 塊狀格式化上下文 bfc 類似,只要元素擁有某些特定的css屬性,就會表現出層疊上下文的特點。前提是重疊在一起,就會按照上圖的規則呈現。1 誰大誰上 如生效的z index屬性值,大的就覆蓋小的。2 後來居上 當元...
CSS規則重要性以及繼承 層疊
多個規則中只有乙個勝出,那麼怎麼知道哪乙個規則更強呢?答案在於每個選擇器的特殊性。對於每個規則,使用者 會計算選擇器的特殊性,並將這個特殊性附加到規則中的各個宣告。如果乙個元素有兩個或者多個衝突的屬性宣告,那麼有最高特殊性的宣告就會勝出。這並不是解決衝突的全部。實際上,所有樣式衝突的解決都由層疊來處...
css 樣式層疊規則
檢視別人css,發現有一段css button.dark.blue button.dark 如果這樣寫,backgroud color到底是用誰的呢?原來我只知道內聯樣式的權值 id選擇器 類選擇器 標籤選擇器這樣的規則,還有就是越精細等級越高,看上面css 應該是第乙個優先順序更高吧 測試了一下,...