css中的選擇器及優先順序

2021-08-22 10:13:01 字數 4060 閱讀 3393

在 css 中,選擇器是一種模式,用於選擇需要新增樣式的元素。

"css" 列指示該屬性是在哪個 css 版本中定義的。(css1、css2 還是 css3。)

選擇器名稱

例子例子描述

css.class

類選擇器

.intro

選擇 class="intro" 的所有元素。

1#id

id 選擇器

#firstname

選擇 id="firstname" 的所有元素。1*

萬用字元選擇器

*選擇所有元素。

2element

元素選擇器

p選擇所有 元素。

1element,element

element,element 選擇器

div,p

選擇所有 元素和所有 元素。

1element

element

後代選擇器

div p

選擇 元素內部的所有 元素。

1element>element

子元素選擇器

div>p

選擇父元素為 元素的所有 元素。

2element+element

相鄰兄弟選擇器

div+p

選擇緊接在 元素之後的所有 元素。

2[attribute]

屬性選擇器

[target]

選擇帶有 target 屬性所有元素。

2[attribute=value]

屬性選擇器

[target=_blank]

選擇 target="_blank" 的所有元素。

2[attribute~=value]

屬性選擇器

[title~=flower]

選擇 title 屬性包含單詞 "flower" 的所有元素。

2[attribute|=value]

屬性選擇器

[lang|=en]

選擇 lang 屬性值以 "en" 開頭的所有元素。

2:link

a:link

選擇所有未被訪問的鏈結。

1:visited

a:visited

選擇所有已被訪問的鏈結。

1:active

a:active

選擇活動鏈結。

1:hover

a:hover

選擇滑鼠指標位於其上的鏈結。

1:focus

input:focus

選擇獲得焦點的 input 元素。

2:first-letter

p:first-letter

選擇每個 元素的首字母。

1:first-line

p:first-line

選擇每個 元素的首行。

1:first-child

p:first-child

選擇屬於父元素的第乙個子元素的每個 元素。

2:before

p:before

在每個 元素的內容之前插入內容。

2:after

偽類p:after

在每個 元素的內容之後插入內容。

2:lang(language)

p:lang(it)

選擇帶有以 "it" 開頭的 lang 屬性值的每個 元素。

2element1~element2

p~ul

選擇前面有 元素的每個 元素。

選擇其 src 屬性值以 "https" 開頭的每個 元素。

3[attribute$=value]

a[src$=".pdf"]

選擇其 src 屬性以 ".pdf" 結尾的所有 元素。

3[attribute*=value]

a[src*="abc"]

選擇其 src 屬性中包含 "abc" 子串的每個 元素。

3:first-of-type

p:first-of-type

選擇屬於其父元素的首個 元素的每個 元素。

3:last-of-type

p:last-of-type

選擇屬於其父元素的最後 元素的每個 元素。

3:only-of-type

p:only-of-type

選擇屬於其父元素唯一的 元素的每個 元素。

3:only-child

p:only-child

選擇屬於其父元素的唯一子元素的每個 元素。

3:nth-child(n)

p:nth-child(2)

選擇屬於其父元素的第二個子元素的每個 元素。

3:nth-last-child(n)

p:nth-last-child(2)

同上,從最後乙個子元素開始計數。

3:nth-of-type(n)

p:nth-of-type(2)

選擇屬於其父元素第二個 元素的每個 元素。

3:nth-last-of-type(n)

p:nth-last-of-type(2)

同上,但是從最後乙個子元素開始計數。

3:last-child

p:last-child

選擇屬於其父元素最後乙個子元素每個 元素。

3:root

:root

選擇文件的根元素。

3:empty

p:empty

選擇沒有子元素的每個 元素(包括文字節點)。

3:target

#news:target

選擇當前活動的 #news 元素。

3:enabled

input:enabled

選擇每個啟用的 元素。

3:disabled

input:disabled

選擇每個禁用的 元素

3:checked

input:checked

選擇每個被選中的 元素。

3:not(selector)

:not(p)

選擇非 元素的每個元素。

3::selection

::selection

選擇被使用者選取的元素部分。

3css的引入方式共有三種:行內樣式、內部樣式表、外部樣式表。

當兩個規則都作用到了同乙個html元素上時,如果定義的屬性有衝突,那麼應該用誰的值的,css有一套優先順序的定義。

不同級別

在屬性後面使用 !important 會覆蓋頁面內任何位置定義的元素樣式。

作為style屬性寫在元素內的樣式

id選擇器

類選擇器

標籤選擇器

萬用字元選擇器

瀏覽器自定義或繼承

總結排序:!important > 行內樣式》id選擇器 > 類選擇器 > 標籤 > 萬用字元 > 繼承 > 瀏覽器預設屬性

同一級別

同一級別中後寫的會覆蓋先寫的樣式

css優先順序:是由四個級別和各級別的出現次數決定的。

四個級別分別為:行內選擇符、id選擇符、類別選擇符、元素選擇符。

優先順序的演算法:

每個規則對應乙個初始"四位數":0、0、0、0

若是 行內選擇符,則加1、0、0、0

若是 id選擇符,則加0、1、0、0

若是 類選擇符/屬性選擇符/偽類選擇符,則分別加0、0、1、0

若是 元素選擇符/偽元素選擇符,則分別加0、0、0、1

演算法:將每條規則中,選擇符對應的數相加後得到的」四位數「,從左到右進行比較,大的優先順序越高。  

①、!important的優先順序是最高的,但出現衝突時則需比較」四位數「;

②、優先順序相同時,則採用就近原則,選擇最後出現的樣式;

③、繼承得來的屬性,其優先順序最低;

!important > 行內樣式》id選擇器 > 類選擇器 > 標籤 > 萬用字元 > 繼承 > 瀏覽器預設屬性

*css選擇器使用強烈建議採用低權重原則,利於充分發揮css的繼承性,復用性,模組化、元件化。

CSS選擇器及優先順序

css優先順序的計算公式 通常我們可以將css的優先順序由高到低分為六組 無條件優先的屬性只需要在屬性後面使用 important 它會覆蓋頁面內任何位置定義的元素樣式。當然,ie 6不支援這個屬性,於是它也成為一種hack被很多人所熟知,真正使命被人淡忘。第二高位的優先屬性是在html中給元素標籤...

CSS選擇器及優先順序

css選擇器 css選擇器優先順序 解釋 對一種有標識的內容進行樣式變化 標籤選擇器 對應的標籤檔案所有對應的標籤都會被選擇修飾 選擇器名 標籤 類選擇器 標籤內的屬性 class 值 選擇器名 class 顧名思義,是一類的內容使用同一種樣式 id選擇器 標籤內的屬性 id 值 選擇器名 id i...

css選擇器及優先順序

後代選擇器 div p 選擇div元素裡面的所有p元素 子選擇器 div p 選擇父元素為div的所有p元素 同胞選擇器 div p 選擇所有緊跟在div之後的p元素 組選擇器 div,p 選擇所有的div和p元素 共同選擇器 div.name 選擇所有類名為name的div元素。即同時滿足 此外還...