CSS選擇器匯總

CSS選擇器

基本選擇器

選擇器 名稱 說明 CSS版本
* 通用選擇器 選擇所有元素 2
#<id> id選擇器 選擇指定id屬性的元素 1
.<class> class選擇器 選擇指定class屬性的元素 1
<type> 元素選擇器 選擇指定類型的元素 1
[attr] 屬性選擇器 選擇指定attr屬性的元素 2~3

1. 通用選擇器

* 選擇器匹配所有 html 元素(包括<html><body>標簽)曙砂。

* { 
    border: 1px solid red; 
} 

2. ID選擇器

通過對元素設(shè)置全局屬性 id柒桑,然后使用#id 值來選擇頁面唯一元素慰枕。

<p id="abc">
    段落
</p>    

#abc { 
    font-size: 20px; 
}

3. 類選擇器

通過對元素設(shè)置全局屬性 class盟戏,然后使用.class 值選擇頁面一個或多個元素酸休。

<b class="abc">加粗</b> 
<span class="abc">無</span>

.abc { 
    border: 1px solid red; 
}


使用元素.class的形式乞巧,限定某種類型的元素口蝠。

b.abc { 
    border: 1px solid red; 
} 

4. 元素選擇器

直接使用元素名稱作為選擇器名器钟。

<p>
    段落
</p>

p { 
    color: tansparent; 
}

5. 屬性選擇器

屬性選擇器,直接通過兩個中括號里面包含屬性名即可妙蔗。

/**所需 CSS2 版本**/

[type] { 
    border: 1px solid #ddd; 
}


匹配屬性值的屬性選擇器傲霸。

/**所需 CSS2 版本**/

[type="password"] { 
    border: 1px solid #ddd; 
}


屬性值開頭匹配的屬性選擇器。

/**所需版本 CSS3 **/

[href^="http"] { 
    color: orange; 
}


屬性值結(jié)尾匹配的屬性選擇器眉反。

/**所需版本 CSS3**/ 

[href$=".com"] { 
    color: orange; 
}


屬性值包含指定字符的屬性選擇器昙啄。

/**所需版本 CSS3 **/

[href*="baidu"] { 
    color: orange; 
}


屬性值具有多個值時,匹配具有其中一個值的屬性選擇器寸五。

/**所需版本 CSS2**/

[class~="edf"] {
    font-size: 50px; 
}

  • 屬性只包含匹配值的會被選擇到梳凛。
  • 屬性包含多個值,含有匹配值的會被選擇到梳杏。

屬性值具有多個值且使用-號連接符分割的其中一個值的屬性選擇器韧拒。

比如:<i lang="en-us">HTML5</i>

/**所需版本 CSS2**/

[lang|="en"] { 
    color: red;
} 

復合選擇器

選擇器 名稱 說明 CSS版本
s1,s2,s3... 分組選擇器 選擇多個選擇器的選擇的元素 1
s1 s2 后代選擇器 選擇指定選擇器的后代元素 1
s1 > s2 子選擇器 選擇指定選擇器的子元素 2
s1 + s2 相鄰兄弟選擇器 選擇指定選擇器相鄰的元素 2
s1 ~ s2 普通兄弟選擇器 選擇指定選擇器后面的元素 3

將不同的選擇器進行組合形成新的特定匹配,我們稱為復合選擇器十性。

1.分組選擇器

將多個選擇器通過逗號分割叛溢,同時設(shè)置一組樣式。

p,b,i,span { 
    color: red; 
} 


不但可以分組元素選擇器劲适,還可以使用 ID 選擇器楷掉、類選擇器、屬性選擇器混合使用。

2.后代選擇器

后代選擇器可以選擇父元素向下所有被選擇的元素痹扇,不在乎被選擇元素的層次深度。

p b { 
    color: red; 
} 

選擇<p>元素內(nèi)部所有<b>元素砖顷。不在乎<b>的層次深度

后代選擇器也可以混合使用 ID 選擇器草雕、類選擇器鄙才、屬性選擇器。

3.子選擇器

子選擇器只能選擇父元素向下一級的元素促绵,不可以再往下選擇攒庵。

<ul> 
    <li>我是兒子</li> 
    <li>我是兒子</li> 
    <li>我是兒子</li> 
</ul> 

ul > li { 
    border: 1px solid red; 
}

4.相鄰兄弟選擇器

相鄰兄弟選擇器匹配第一個元素后面相鄰的指定元素(與第一個元素同級)。

<div>
    <p class="test">第一個段落</p>
    <div>第一個div</div>
    <p>第二個段落</p>
    <div>第二個div</div>
    <p>第三個段落</p>
    <div>第三個div</div>
</div>

.test + div { 
    color: red; 
}

只有第一個div字體顏色會變成紅色

5.普通兄弟選擇器

普通兄弟選擇器匹配第一個元素后面所有的指定元素(與第一個元素同級)败晴。

<div>
    <p class="test">第一個段落</p>
    <div>第一個div</div>
    <p>第二個段落</p>
    <div>第二個div</div>
    <p>第三個段落</p>
    <div>第三個div</div>
</div>

p ~ b { 
    color: red; 
} 

第一個div浓冒、第二個div第三個div字體顏色都會變成紅色尖坤。

偽元素選擇器

選擇器 名稱 說明 CSS版本
::first-line 偽元素選擇器 選擇塊級元素文本的首行 1
::first-letter 偽元素選擇器 選擇塊級元素文本的首字母 1
::before 偽元素選擇器 選擇元素之前插入內(nèi)容 2
::after 偽元素選擇器 選擇元素之后插入內(nèi)容 2
::selection 偽元素選擇器 當選擇文字時觸發(fā) 3

偽選擇器分為兩種:偽類選擇器偽元素選擇器

這兩種選擇器特性上比較容易混淆稳懒,在 CSS3 中為了區(qū)分,偽元素前置兩個冒號(::)慢味,偽類前置一個冒號(:

個人理解:偽元素選擇器選擇的是文本內(nèi)容场梆,偽類選擇器選擇的是元素。

1.::first-line 塊級首行

::first-line { 
    color: red; 
}

塊級元素比如<p>纯路、<div>等的首行文本被選定或油。

如果想限定某種元素,可以加上前置 p::first-line

2.::first-letter 塊級首字母

::first-letter { 
    color: red; 
} 

塊級元素的首字母(中文為首個中文字符)

3.::before 文本前插入

a::before { 
    content: '點擊-'; 
} 

在文本前插入內(nèi)容

4.::after 文本后插入

a::after { 
    content: '-請進'; 
} 

在文本后插入內(nèi)容

5.::selection

::selection{
    color:red;
}

選擇選擇的文字

偽類選擇器

選擇器 名稱 說明 CSS版本
:root 根元素選擇器 選擇文檔中的根元素 3
:first-child 子元素選擇器 選擇元素中第一個子元素 2
:last-child 子元素選擇器 選擇元素中最后一個子元素 3
:nth-child(n) 子元素選擇器 選擇指定N個子元素 3
:only-child 子元素選擇器 選擇元素中唯一子元素 3
:only-of-type 子元素選擇器 選擇指定類型的唯一子元素 3
nth-of-type(n) 子元素選擇器 選擇指定N個子元素 3
:checked UI選擇器 選擇被選中input勾選元素 3
:enabled UI選擇器 選擇啟用狀態(tài)的元素 3
:disabled UI選擇器 選擇禁用狀態(tài)的元素 3
:valid UI選擇器 驗證有效選擇input元素 3
:invalid UI選擇器 驗證無效選擇input元素 3
:required UI選擇器 有required屬性選擇元素 3
:optional UI選擇器 無required屬性選擇元素 3
:default UI選擇器 選擇默認元素 3
:link 動態(tài)選擇器 未訪問的超鏈接元素 1
:hover 動態(tài)選擇器 懸停在超鏈接上的元素 2
:active 動態(tài)選擇器 激活超鏈接上的元素 2
:visited 動態(tài)選擇器 已訪問的超鏈接元素 1
:foucs 動態(tài)選擇器 獲取焦點的元素 2
:not 其他選擇器 否定選擇的元素 3
:empty 其他選擇器 選擇沒有任何內(nèi)容的元素 3
:target 其他選擇器 選取URL片段標識指向元素 3
:lang 其他選擇器 選取包含lang屬性的元素 2

結(jié)構(gòu)性偽類

結(jié)構(gòu)性偽類選擇器能夠根據(jù)元素在文檔中的位置選擇元素驰唬。

1.根元素選擇器

:root{
    border:1px solid red;
}

匹配文檔中的根元素顶岸,基本不怎么用,因為總是返回<html>元素

2.子元素選擇器

ul > li:first-child{
    color:red;
}

選擇li元素叫编,條件:li的父元素下第一個子元素是li的那個li元素


ul > li:last-child{
    color:red;
}

選擇li元素辖佣,條件:li的父元素下最后一個子元素是li元素的那個li元素


以下html結(jié)構(gòu)li:fist-childli:last-child都將不會有li元素被選擇到

<ul>
    <p>首段內(nèi)容</p>
    <li>第一個li</li>
    <li>第二個li</li>
    <li>第三個li</li>
    <p>尾端內(nèi)容</p>
</ul>


ul > li:nth-child(2){
    color:red;
}

選擇li元素,條件:li的父元素下第二個子元素是li元素的那個li元素

文本第一個li的字體顏色將變?yōu)榧t色

/* 匹配奇數(shù)位元素 */
li:nth-of-child(odd)

/* 匹配偶數(shù)位元素 */
li:nth-of-child(even)

/* 匹配連續(xù)位置的元素 */
li:nth-of-child(an + b)

  • a表示周期的長度
  • n表示計數(shù)器(從0開始)
  • b是偏移值

以下實例表示匹配第2搓逾、5卷谈、811位置的元素:

li:nth-of-child(3n + 2)


ul > li:nth-last-child(2){
    color:red;
}

選擇li元素霞篡,條件:li的父元素下倒數(shù)第二個子元素是li元素的那個li元素

文本第三個li的字體顏色將變?yōu)榧t色


ul > li:only-child{
    color:red;
}

選擇li元素世蔗,條件:li的父元素下僅有一個元素,且為li元素的那個li元素

以下html結(jié)構(gòu)中寇损,只有文本only child字體顏色會變?yōu)榧t色

<ul>
    <li>only child</li>
</ul>

<ul>
    <li>第一個子元素</li>
    <li>第二個子元素</li>
</ul>


ul > li:only-of-type{
    color:red;
}

選擇li元素凸郑,條件:li的父元素下僅有一個li類型元素裳食;li的父元素下可以存在或不存在其它類型的元素矛市。

以下html結(jié)構(gòu)中,只有文本only-of-type的字體顏色會變成紅色诲祸。

<ul>
    <li>only of type</li>
</ul>
<ul>
    <li>only of type</li>
    <p>p元素</p>
</ul>

<ul>
    <li>第一個li元素</li>
    <li>第二個li元素</li>
</ul>

<ul>
    <li>第一個li元素</li>
    <li>第二個li元素</li>
    <p>p元素</p>
    <p>p元素</p>
</ul>


ul > li:nth-of-type(2){
    color:red;
}

選擇li元素浊吏,條件:li的父元素下第二個元素是li元素的那個li元素而昨。

第二個li元素字體顏色會變成紅色


ul > li:nth-last-of-type(2){
    color: red;
}

選擇li元素,條件:li的父元素下倒數(shù)第二個元素是li元素的那個li元素找田。

第一個li元素字體顏色會變成紅色

UI偽類

UI偽類選擇器是根據(jù)元素的狀態(tài)匹配元素歌憨。

1.:checked

:checked{
    display:none;
}

選擇checked屬性值為trueinput表單元素

2.:enabled:disabled

:enabled { 
    border: 1px solid red;
}

選擇啟動狀態(tài)的表單元素

:disabled { 
    border: 1px solid red;
}

選擇禁用狀態(tài)的表單元素

3.:valid:invalid

input:valid { 
    border: 1px solid blue;
} 
input:invalid { 
    border: 1px solid green;
}

選擇輸入驗證合法與不合法的表單元素

4.:required

:required{
    border:1px solid blue;
}

選擇require屬性為true的表單元素

5.:optional

:optional {
    border:1px solid red;
}

選擇select元素

6.:default

:default{
    display:none;
}

從一組類似的元素中選擇默認元素。比如input被勾選的即默認的墩衙。

動態(tài)偽類

動態(tài)偽類選擇器根據(jù)條件的改變匹配元素务嫡。

1.:link

a:link{
    color:blue;
}

:link表示未訪問過的超鏈接

2.:hover

a:hove{
    color:orange;
}

:hover表示鼠標懸停在超鏈接上

3.:active

a:active{
    color:red;
}

:active表示鼠標按下激活超鏈接時

4.:visited

a:visited{
    color:gray;
}

:visited表示已訪問過的超鏈接

5.:focus

input:focus{
    border:1px solid red;
}

:focus表示獲得焦點時

其它偽類

1.:not

a:not([href*="baidu"]) { 
    color: red;
}

否定選擇器,反選漆改。

2.:empty

:empty { 
    display: none;
}

匹配沒有任何內(nèi)容的元素心铃。

3.:target

:target { 
    color: red;
}

定位到錨點時,選擇此元素挫剑。

以下html元素去扣,選擇元素為div元素

<a href="#1">1</a>
<a href="#2">2</a>
<div id="1">1target</div>
<div id="2">2target</div>

4.:lang

:lang(en) { 
    color: red;
}

選擇包含lang屬性,屬性值前綴為en的元素樊破。

和屬性選擇器匹配結(jié)果一致愉棱。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市哲戚,隨后出現(xiàn)的幾起案子奔滑,更是在濱河造成了極大的恐慌,老刑警劉巖顺少,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件档押,死亡現(xiàn)場離奇詭異,居然都是意外死亡祈纯,警方通過查閱死者的電腦和手機令宿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來腕窥,“玉大人粒没,你說我怎么就攤上這事〈乇” “怎么了癞松?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長入蛆。 經(jīng)常有香客問我响蓉,道長,這世上最難降的妖魔是什么哨毁? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任枫甲,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘想幻。我一直安慰自己粱栖,他們只是感情好,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布脏毯。 她就那樣靜靜地躺著闹究,像睡著了一般食店。 火紅的嫁衣襯著肌膚如雪渣淤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天刻伊,我揣著相機與錄音,去河邊找鬼旱眯。 笑死晨川,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的删豺。 我是一名探鬼主播共虑,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼呀页!你這毒婦竟也來了妈拌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蓬蝶,失蹤者是張志新(化名)和其女友劉穎尘分,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丸氛,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡培愁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了缓窜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片定续。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡谍咆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出香罐,到底是詐尸還是另有隱情卧波,我是刑警寧澤时肿,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布庇茫,位于F島的核電站,受9級特大地震影響螃成,放射性物質(zhì)發(fā)生泄漏旦签。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一寸宏、第九天 我趴在偏房一處隱蔽的房頂上張望宁炫。 院中可真熱鬧,春花似錦氮凝、人聲如沸羔巢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽竿秆。三九已至,卻和暖如春稿壁,著一層夾襖步出監(jiān)牢的瞬間幽钢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工傅是, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留匪燕,地道東北人。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓喧笔,卻偏偏與公主長得像帽驯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子书闸,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案界拦? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,754評論 1 92
  • 1.CSS 元素選擇器 最常見的 CSS 選擇器是元素選擇器。換句話說梗劫,文檔的元素就是最基本的選擇器享甸。如果設(shè)置 H...
    饑人谷_小侯閱讀 864評論 0 1
  • 一、CSS選擇器常見的有幾種? 基本選擇器 通配選擇器~選擇文檔中所有的html元素梳侨,用一個*表示 元素選擇器~選...
    dengpan閱讀 962評論 0 3
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理蛉威,服務發(fā)現(xiàn),斷路器走哺,智...
    卡卡羅2017閱讀 134,662評論 18 139
  • 我想問一下:我還能活多久蚯嫌? 我的家在一個小鄉(xiāng)村,我的周圍有種菜的,養(yǎng)殖的择示,種糧食的束凑,干軸承的,市里還有有好幾個大煙...
    一步一坑兒閱讀 176評論 0 0