CSS 偽類

2023-02-23 10:46 更新

CSS 偽類 (Pseudo-classes)


CSS 偽類是用來添加一些選擇器的特殊效果。

由于狀態(tài)的變化是非靜態(tài)的,所以元素達(dá)到一個(gè)特定狀態(tài)時(shí),它可能得到一個(gè)偽類的樣式;當(dāng)狀態(tài)改變時(shí),它又會(huì)失去這個(gè)樣式。由此可以看出,它的功能和 class 有些類似,但它是基于文檔之外的抽象,所以叫偽類。


語法

偽類的語法:

selector:pseudo-class {property:value;}

CSS 類也可以使用偽類:

selector.class:pseudo-class {property:value;}


anchor 偽類

在支持 CSS 的瀏覽器中,鏈接的不同狀態(tài)都可以以不同的方式顯示

實(shí)例

a:link {color:#FF0000;} /* 未訪問的鏈接 */
a:visited {color:#00FF00;} /* 已訪問的鏈接 */
a:hover {color:#FF00FF;} /* 鼠標(biāo)劃過鏈接 */
a:active {color:#0000FF;} /* 已選中的鏈接 */

嘗試一下 ?

注意: 在 CSS 定義中,a:hover 必須被置于 a:link 和 a:visited 之后,才是有效的。

注意: 在 CSS 定義中,a:active 必須被置于 a:hover 之后,才是有效的。

注意:偽類的名稱不區(qū)分大小寫。


偽類和 CSS 類

偽類可以與 CSS 類配合使用:

a.red:visited {color:#FF0000;}       

<a class="red" href="css-syntax.html">CSS Syntax</a>

如果在上面的例子的鏈接已被訪問,它會(huì)顯示為紅色。


CSS - :first - child 偽類

您可以使用 :first-child 偽類來選擇元素的第一個(gè)子元素

注意:在 IE8 的之前版本必須聲明 <!DOCTYPE> ,這樣 :first-child 才能生效。

匹配第一個(gè) <p> 元素

在下面的例子中,選擇器匹配作為任何元素的第一個(gè)子元素的 <p> 元素:

實(shí)例

<html>
<head>
<style>
p:first-child
{
color:blue;
}
</style>
</head>

<body>
<p>我是一個(gè)強(qiáng)壯的男人.</p>
<p>我是一個(gè)強(qiáng)壯的男人.</p>
</body>
</html>

嘗試一下 ?

匹配所有 <p> 元素中的第一個(gè) <i> 元素

在下面的例子中,選擇相匹配的所有 <p> 元素的第一個(gè) <i> 元素:

實(shí)例

<html>
<head>
<style>
p > i:first-child
{
color:blue;
}
</style>
</head>

<body>
<p>我是一個(gè) <i>強(qiáng)壯</i> 的男人. 我是一個(gè) <i>強(qiáng)壯</i> 的男人.</p> 
<p>我是一個(gè) <i>強(qiáng)壯</i> 的男人. 我是一個(gè) <i>強(qiáng)壯</i> 的男人.</p> 
</body>
</html>

嘗試一下 ?

匹配所有作為第一個(gè)子元素的 <p> 元素中的所有 <i> 元素

在下面的例子中,選擇器匹配所有作為元素的第一個(gè)子元素的 <p> 元素中的所有 <i> 元素:

實(shí)例

<html>
<head>
<style>
p:first-child i
{
color:blue;
}
</style>
</head>

<body>
<p>我是一個(gè) <i>強(qiáng)壯</i> 的男人. 我是一個(gè) <i>強(qiáng)壯</i> 的男人.</p>
<p>我是一個(gè) <i>強(qiáng)壯</i> 的男人. 我是一個(gè) <i>強(qiáng)壯</i> 的男人.</p>
</body>
</html>

嘗試一下 ?

CSS - :lang 偽類

:lang 偽類使你有能力為不同的語言定義特殊的規(guī)則

注意:IE8 必須聲明 <!DOCTYPE> 才能支持; lang 偽類。

在下面的例子中,:lang 類為屬性值為 no 的 q 元素定義引號(hào)的類型:

實(shí)例

<html>
<head>
<style>
q:lang(no) {quotes: "~" "~";}
</style>
</head>

<body>
<p>一些文字 <q lang="no">段落中的引用</q> 一些文字。</p>
</body>
</html>

嘗試一下 ?


Examples

更多實(shí)例

為超鏈接添加不同樣式
這個(gè)例子演示了如何為超鏈接添加其他樣式。

使用 :focus
這個(gè)例子演示了如何使用 :focus 偽類。


所有CSS偽類/元素

選擇器 示例 示例說明
:checked input:checked 選擇所有選中的表單元素
:disabled input:disabled 選擇所有禁用的表單元素
:empty p:empty 選擇所有沒有子元素的p元素
:enabled input:enabled 選擇所有啟用的表單元素
:first-of-type p:first-of-type 選擇的每個(gè) p 元素是其父元素的第一個(gè) p 元素
:in-range input:in-range 選擇元素指定范圍內(nèi)的值
:invalid input:invalid 選擇所有無效的元素
:last-child p:last-child 選擇所有p元素的最后一個(gè)子元素
:last-of-type p:last-of-type 選擇每個(gè)p元素是其母元素的最后一個(gè)p元素
:not(selector) :not(p) 選擇所有p以外的元素
:nth-child(n) p:nth-child(2) 選擇所有 p 元素的父元素的第二個(gè)子元素
:nth-last-child(n) p:nth-last-child(2) 選擇所有p元素倒數(shù)的第二個(gè)子元素
:nth-last-of-type(n) p:nth-last-of-type(2) 選擇所有p元素倒數(shù)的第二個(gè)為p的子元素
:nth-of-type(n) p:nth-of-type(2) 選擇所有p元素第二個(gè)為p的子元素
:only-of-type p:only-of-type 選擇所有僅有一個(gè)子元素為p的元素
:only-child p:only-child 選擇所有僅有一個(gè)子元素的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)前活動(dòng)#news元素(點(diǎn)擊URL包含錨的名字)
:valid
input:valid
選擇所有有效值的屬性
:link a:link 選擇所有未訪問鏈接
:visited a:visited 選擇所有訪問過的鏈接
:active a:active 選擇正在活動(dòng)鏈接
:hover a:hover 把鼠標(biāo)放在鏈接上的狀態(tài)
:focus input:focus 選擇元素輸入后具有焦點(diǎn)
:first-letter p:first-letter 選擇每個(gè)<p> 元素的第一個(gè)字母
:first-line p:first-line 選擇每個(gè)<p> 元素的第一行
:first-child p:first-child 選擇器匹配屬于任意元素的第一個(gè)子元素的 <]p> 元素
:before p:before 在每個(gè)<p>元素之前插入內(nèi)容
:after p:after 在每個(gè)<p>元素之后插入內(nèi)容
:lang(language) p:lang(it) 為<p>元素的lang屬性選擇一個(gè)開始值

擴(kuò)展閱讀

CSS 拾遺系列:淺談CSS中的偽元素和偽類


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)