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:link
和 a:visited
之后,才能生效!a:active
必須在 CSS 定義中的 a:hover
之后才能生效!偽類名稱對大小寫不敏感。
簡單的工具提示懸停
把鼠標懸停到 <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 | 選擇用戶選擇的元素部分。 |