CSS 偽類

什么是偽類?

偽類用于定義元素的特殊狀態。

例如,它可以用于:

  • 設置鼠標懸停在元素上時的樣式
  • 為已訪問和未訪問鏈接設置不同的樣式
  • 設置元素獲得焦點時的樣式
請將鼠標懸停在我上面

語法

偽類的語法:

selector:pseudo-class {
  property: value;
}

錨偽類

鏈接能夠以不同的方式顯示:

實例

/* 未訪問的鏈接 */
a:link {
  color: #FF0000;
}
/* 已訪問的鏈接 */
a:visited {
  color: #00FF00;
}
/* 鼠標懸停鏈接 */
a:hover {
  color: #FF00FF;
}
/* 已選擇的鏈接 */
a:active {
  color: #0000FF;
}

親自試一試

注意:a:hover 必須在 CSS 定義中的 a:linka:visited 之后,才能生效!a:active 必須在 CSS 定義中的 a:hover 之后才能生效!偽類名稱對大小寫不敏感。

偽類和 CSS 類

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

當您將鼠標懸停在例子中的鏈接上時,它會改變顏色:

實例

a.highlight:hover {
  color: #ff0000;
}

親自試一試

懸停在 <div> 上

在 <div> 元素上使用 :hover 偽類的實例:

實例

div:hover {
  background-color: blue;
}

親自試一試

簡單的工具提示懸停

把鼠標懸停到 <div> 元素以顯示 <p> 元素(類似工具提示的效果):

懸停到我上面來顯示 <p> 元素。

嘿嘿,我在這里!

實例

p {
  display: none;
  background-color: yellow;
  padding: 20px;
}
div:hover p {
  display: block;
}

親自試一試

CSS - :first-child 偽類

:first-child 偽類與指定的元素匹配:該元素是另一個元素的第一個子元素。

匹配首個 <p> 元素

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

實例

p:first-child {
  color: blue;
}

親自試一試

匹配所有 <p> 元素中的首個 <i> 元素

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

實例

p i:first-child {
  color: blue;
}

親自試一試

匹配所有首個 <p> 元素中的所有 <i> 元素

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

實例

p:first-child i {
  color: blue;
}

親自試一試

CSS - :lang 偽類

:lang 偽類允許您為不同的語言定義特殊的規則。

在下面的例子中,:lang 為屬性為 lang="en" 的 <q> 元素定義引號:

實例

<html>
<head>
<style>
q:lang(en) {
  quotes: "~" "~";
}
</style>
</head>
<body>
<p>Some text <q lang="no">A quote in a paragraph</q> Some text.</p>
</body>
</html>

親自試一試

更多實例

為超鏈接添加不同樣式
本例演示如何向超鏈接添加其他樣式。
使用 :focus
本例演示如何使用 :focus 偽類。

所有 CSS 偽類

選擇器 例子 例子描述
:active a: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 選擇獲得焦點的 <input> 元素。
:hover a:hover 選擇鼠標懸停其上的鏈接。
:in-range input:in-range 選擇具有指定范圍內的值的 <input> 元素。
:invalid input:invalid 選擇所有具有無效值的 <input> 元素。
:lang(language) p:lang(it) 選擇每個 lang 屬性值以 "it" 開頭的 <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 選擇當前活動的 #news 元素(單擊包含該錨名稱的 URL)。
:valid input:valid 選擇所有具有有效值的 <input> 元素。
:visited a:visited 選擇所有已訪問的鏈接。

所有 CSS 偽元素

選擇器 例子 例子描述
::after p::after 在每個 <p> 元素之后插入內容。
::before p::before 在每個 <p> 元素之前插入內容。
::first-letter p::first-letter 選擇每個 <p> 元素的首字母。
::first-line p::first-line 選擇每個 <p> 元素的首行。
::selection p::selection 選擇用戶選擇的元素部分。