CSS 偽類 (Pseudo-classes)
CSS 偽類是用來添加一些選擇器的特殊效果。
由于狀態(tài)的變化是非靜態(tài)的,所以元素達(dá)到一個特定狀態(tài)時,它可能得到一個偽類的樣式;當(dāng)狀態(tài)改變時,它又會失去這個樣式。由此可以看出,它的功能和 class 有些類似,但它是基于文檔之外的抽象,所以叫偽類。
偽類的語法:
selector:pseudo-class {property:value;}
CSS 類也可以使用偽類:
selector.class:pseudo-class {property:value;}
在支持 CSS 的瀏覽器中,鏈接的不同狀態(tài)都可以以不同的方式顯示
注意: 在 CSS 定義中,a:hover 必須被置于 a:link 和 a:visited 之后,才是有效的。
注意: 在 CSS 定義中,a:active 必須被置于 a:hover 之后,才是有效的。
注意:偽類的名稱不區(qū)分大小寫。
偽類可以與 CSS 類配合使用:
a.red:visited {color:#FF0000;}
<a class="red" href="css-syntax.html">CSS Syntax</a>
如果在上面的例子的鏈接已被訪問,它會顯示為紅色。
您可以使用 :first-child 偽類來選擇元素的第一個子元素
注意:在 IE8 的之前版本必須聲明 <!DOCTYPE> ,這樣 :first-child 才能生效。
在下面的例子中,選擇器匹配作為任何元素的第一個子元素的 <p> 元素:
在下面的例子中,選擇相匹配的所有 <p> 元素的第一個 <i> 元素:
在下面的例子中,選擇器匹配所有作為元素的第一個子元素的 <p> 元素中的所有 <i> 元素:
:lang 偽類使你有能力為不同的語言定義特殊的規(guī)則
注意:IE8 必須聲明 <!DOCTYPE> 才能支持; lang 偽類。
在下面的例子中,:lang 類為屬性值為 no 的 q 元素定義引號的類型:
為超鏈接添加不同樣式
這個例子演示了如何為超鏈接添加其他樣式。
使用 :focus
這個例子演示了如何使用 :focus 偽類。
選擇器 | 示例 | 示例說明
|
---|---|---|
:checked | input:checked | 選擇所有選中的表單元素 |
:disabled | input:disabled | 選擇所有禁用的表單元素 |
:empty | p:empty | 選擇所有沒有子元素的p元素 |
:enabled | input:enabled | 選擇所有啟用的表單元素 |
:first-of-type | p:first-of-type | 選擇的每個 p 元素是其父元素的第一個 p 元素 |
:in-range | input:in-range | 選擇元素指定范圍內(nèi)的值 |
:invalid | input:invalid | 選擇所有無效的元素 |
:last-child | p:last-child | 選擇所有p元素的最后一個子元素 |
:last-of-type | p:last-of-type | 選擇每個p元素是其母元素的最后一個p元素 |
:not(selector) | :not(p) | 選擇所有p以外的元素 |
:nth-child(n) | p:nth-child(2) | 選擇所有 p 元素的父元素的第二個子元素 |
:nth-last-child(n) | p:nth-last-child(2) | 選擇所有p元素倒數(shù)的第二個子元素 |
:nth-last-of-type(n) | p:nth-last-of-type(2) | 選擇所有p元素倒數(shù)的第二個為p的子元素 |
:nth-of-type(n) | p:nth-of-type(2) | 選擇所有p元素第二個為p的子元素 |
:only-of-type | p:only-of-type | 選擇所有僅有一個子元素為p的元素 |
:only-child | p:only-child | 選擇所有僅有一個子元素的p元素 |
:optional | input:optional | 選擇沒有"required"的元素屬性 |
:out-of-range | input:out-of-range | 選擇指定范圍以外的值的元素屬性 |
:read-only | input:read-only | 選擇只讀屬性的元素屬性 |
:read-write | input:read-write | 選擇沒有只讀屬性的元素屬性 |
:required | input:required | 選擇有"required"屬性指定的元素屬性 |
:root | root |
選擇文檔的根元素 |
:target | #news:target |
選擇當(dāng)前活動#news元素(點擊URL包含錨的名字) |
:valid |
input:valid |
選擇所有有效值的屬性 |
:link | a:link | 選擇所有未訪問鏈接
|
:visited | a:visited | 選擇所有訪問過的鏈接 |
:active | a:active | 選擇正在活動鏈接 |
:hover | a:hover | 把鼠標(biāo)放在鏈接上的狀態(tài) |
:focus | input:focus | 選擇元素輸入后具有焦點 |
:first-letter | p:first-letter | 選擇每個<p> 元素的第一個字母 |
:first-line | p:first-line | 選擇每個<p> 元素的第一行 |
:first-child | p:first-child | 選擇器匹配屬于任意元素的第一個子元素的 <]p> 元素 |
:before | p:before | 在每個<p>元素之前插入內(nèi)容 |
:after | p:after | 在每個<p>元素之后插入內(nèi)容 |
:lang(language) | p:lang(it) | 為<p>元素的lang屬性選擇一個開始值 |
CSS 拾遺系列:淺談CSS中的偽元素和偽類
更多建議: