什么是偽類?
偽類用于定義元素的特殊狀態(tài)湿痢。 例如么鹤,它可用于:
- 當(dāng)用戶將鼠標(biāo)懸停在元素上時為其設(shè)置樣式
- 訪問和未訪問的鏈接不同樣式
- 在獲得焦點(diǎn)時設(shè)置元素的樣式
偽類的語法
后代選擇器匹配作為指定元素后代的所有元素。以下示例選擇<div>元素內(nèi)的所有<p>元素:
選擇器:偽類 { 屬性:值; }
鏈接可以以不同方式顯示:
/* 未訪問的鏈接 */
a:link { color: red; }
/* 已瀏覽過的鏈接 */
a:visited { color: green; }
/* 鼠標(biāo)懸停時候的鏈接 */
a:hover { color: hotpink; }
/* 選定的鏈接 */
a:active { color: blue; }
注意:a:hover必須在CSS定義a:link之后和a:visited之后才能生效肿男!a:active必須 a:hover在CSS定義之后才能有效纯蛾!偽類名稱不區(qū)分大小寫邪狞。
偽類和CSS類
偽類可以與CSS類結(jié)合使用:當(dāng)您將鼠標(biāo)懸停在示例中的鏈接上時,它將更改顏色:
a.highlight:hover { color: #ff0000; }
將鼠標(biāo)懸停在<div>上
:hover在<div>元素上使用偽類的示例:
div:hover { background-color: blue; }
簡單的工具提示懸停
將鼠標(biāo)懸停在<div>元素上以顯示<p>元素(如工具提示)
p {
display: none;
background-color: yellow;
padding: 20px;
}
div:hover p {
display: block;
}
:first-child偽類
:first-child偽類指定的元素是另一個元素的第一個子匹配茅撞。 在以下示例中帆卓,選擇器匹配任何元素的第一個子元素<p>元素:
p:first-child { color: blue; }
匹配所有<p>元素中的第一個<i>元素
p i:first-child { color: blue; }
匹配所有第一個子<p>元素中的所有<i>元素
p:first-child i { color: blue; }
:lang偽類
:lang偽類允許定義不同語言的特殊規(guī)則巨朦。在下面的示例中,:lang使用lang=“no”定義<q>元素的引用:
q:lang(no) { quotes: "~" "~"; }
所有CSS偽類
選擇器 | 例子 | 描述 |
---|---|---|
:active | a:active | 選擇active激活鏈接 |
:checked | input:checked | 選擇每個選中的<input>元素 |
:disabled | input:disabled | 選擇每個禁用的<input>元素 |
:empty | p:empty | 選擇每個沒有子元素的<p>元素 |
:enabled | input:enabled | 選擇每個啟用的<input>元素 |
:first-child | p:first-child | 選擇作為其父級的第一個子元素的每個<p>元素 |
:first-of-type | p:first-of-type | 選擇每個<p>元素剑令,它是其父元素的第一個<p>元素 |
:focus | input:focus | 選擇具有焦點(diǎn)的<input>元素 |
:hover | a:hover | 選擇鼠標(biāo)懸停時的鏈接 |
:in-range | input:in-range | 選擇具有指定范圍內(nèi)的值的<input>元素 |
:invalid | input:invalid | 選擇具有無效值的所有<input>元素 |
:lang(language) | p:lang(it) | 選擇具有以“it”開頭的lang屬性值的每個<p>元素 |
:last-child | p:last-child | 選擇作為其父級的最后一個子元素的每個<p>元素 |
:last-of-type | p:last-of-type | 選擇每個<p>元素糊啡,它是其父元素的最后一個<p>元素 |
:link | a:link | 選擇所有未訪問的鏈接 |
:not(selector) | :not(p) | 選擇不是<p>元素的每個元素 |
:nth-child(n) | p:nth-child(2) | 選擇作為其父級的第二個子元素的每個<p>元素 |
:nth-last-child(n) | p:nth-last-child(2) | 選擇每個<p>元素作為其父元素的第二個子元素,從最后一個子元素開始計算 |
:nth-last-of-type(n) | p:nth-last-of-type(2) | 選擇每個<p>元素作為其父元素的第二個<p>元素吁津,從最后一個子元素開始計算 |
:nth-of-type(n) | p:nth-of-type(2) | 選擇每個<p>元素棚蓄,它是其父元素的第二個<p>元素 |
:only-of-type | p:only-of-type | 選擇每個<p>元素,它是其父元素的唯一<p>元素 |
:only-child | p:only-child | 選擇每個<p>元素碍脏,它是其父元素的唯一子元素 |
:optional | input:optional | 選擇沒有“required”屬性的<input>元素 |
:out-of-range | input:out-of-range | 選擇<input>元素梭依,其值超出指定范圍 |
:read-only | input:read-only | 選擇具有指定“readonly”屬性的<input>元素 |
:read-write | input:read-write | 選擇沒有“readonly”屬性的<input>元素 |
:required | input:required | 選擇指定了“required”屬性的<input>元素 |
:root | root | 選擇文檔的根元素 |
:target | #news:target | 選擇當(dāng)前活動的#news元素(單擊包含該錨名稱的URL) |
:valid | input:valid | 選擇具有有效值的所有<input>元素 |
:visited | a:visited | 選擇所有訪問過的鏈接 |
所有CSS偽元素
選擇器 | 例子 | 描述 |
---|---|---|
::after | p::after | 在每個<p>元素后插入內(nèi)容 |
::before | p::before | 在每個<p>元素之前插入內(nèi)容 |
::first-letter | p::first-letter | 選擇每個<p>元素的第一個字母 |
::first-line | p::first-line | 選擇每個<p>元素的第一行 |
::selection | p::selection | 選擇用戶選擇的元素部分 |