CSS樣式之優先順序

2021-07-30 18:05:47 字數 2848 閱讀 7347

說到到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...