說到到css的樣式優先順序,今天偶再來回顧下,從css的樣式優先順序可分為兩個部分:
1、從css**放置的位置看權重優先順序:
內聯樣式>內部嵌入樣式>外聯樣式
2、從樣式選擇器的權重優先順序:
important>內聯樣式>id>類、偽類、屬性選擇器>標籤、偽元素>萬用字元
今兒,我們重點來看看第2點—樣式選擇器。
請看以下**:
執行**,效果圖如下:
是粉紅色。按照上面的說法class1、class2不都屬於類嘛。既然優先順序一樣,那不就應該是後面的class2(綠色)覆蓋住class1(粉紅色)嗎?
是的。類是屬於同一級,但是div.class1和.class2的優先權重是不一樣的。
請看下表:
選擇器權重
!important
1,0,0,0
id0,1,0,0
類、偽類、屬性選擇器
0,0,1,0
標籤、偽元素
0,0,0,1
萬用字元0,0,0,0
當我們看到html**時,不要單一看它呼叫的是什麼樣式,比如上面的class1、class2在放在div標籤上時,都一樣,類嘛
但是,其實它們的權重是不一樣的。所以要追蹤到css樣式中,檢視它們的權重。
這個權重的計算方法就是利用上面表中對應的權重值,疊加,得到最終值。值越大,權重就越大,從而優先順序也就越高咯。
如上面**中的class1、class2:
結合上面中列出的權重,從而可得class1和class2的權重
class1=div(0001)+.class1(0010)=0011
class2=.class2(0010)=0010
class1的權重大於class2的權重,從而class1的優先順序就高於class2咯。
所以,顯示class1的粉紅色咯 。
下面列舉了幾個css表示式的權重值,自我測試下:
css選擇器表示式
權重值h1 + *[rel = up ]
0011
li.red.level
0021
#test:not(ii)
0110
#test:before
0101
好了,那當樣式的優先順序一樣呢?那就得看它們出現的順序了。後出現的覆蓋前面的。
注意:是樣式表中的順序,而不是html標籤中class出現的順序。
如下:
css樣式優先順序
多重樣式將層疊為乙個 樣式表允許以多種方式規定樣式資訊。樣式可以規定在單個的 html 元素中,在 html 頁的頭元素中,或在乙個外部的 css 檔案中。甚至可以在同乙個 html 文件內部引用多個外部樣式表。層疊次序 當同乙個 html 元素被不止乙個樣式定義時,會使用哪個樣式呢?一般而言,所有...
CSS樣式優先順序
css樣式分為內聯樣式和外部樣式,一般情況下 內聯樣式的優先順序大於外部樣式。即style樣式 id選擇器 class選擇器 元素選擇器。例如 on person num li當對li標籤新增上面兩個樣式時,on樣式中重複的內容是不會生效的。因為.on樣式的優先順序值小於li,它會被li樣式覆蓋。但...
css樣式優先順序
css樣式分類 外聯樣式,內部樣式,內聯樣式,行內樣式 標籤屬性 優先順序 行內樣式 標籤屬性 外聯樣式 內部樣式 內聯樣式,這裡的高度為110px class login class imgs 選擇器 權值內聯樣式表的權值最高 1000 id 選擇器的權值 100class 類選擇器的權值 10h...