CSS 偽類
什麼是偽類?
偽類用於定義元素的特殊狀態。
例如,它可以用於
- 當用戶將滑鼠懸停在元素上時進行樣式設定
- 為已訪問和未訪問的連結設定不同的樣式
- 當元素獲得焦點時進行樣式設定
將滑鼠懸停在我上面
語法
偽類的語法
選擇器:偽類 {
屬性: 值;
}
錨點偽類
連結可以顯示不同的方式
示例
/* 未訪問的連結 */
a:link {
color: #FF0000;
}
/* 已訪問的連結 */
a:visited {
color: #00FF00;
}
/* 滑鼠懸停在連結上 */
a:hover {
color: #FF00FF;
}
/* 選中的連結 */
a:active {
color: #0000FF;
}
自己動手試一試 »
注意: 在 CSS 定義中,a:hover 必須在 a:link 和 a:visited 之後,才能生效!在 CSS 定義中,a:active 必須在 a:hover 之後,才能生效!偽類名稱不區分大小寫。
偽類與 HTML 類
偽類可以與 HTML 類結合使用
當您將滑鼠懸停在示例中的連結上時,它將改變顏色
懸停在 <div> 上
在 <div> 元素上使用 :hover 偽類的一個示例
簡單的工具提示懸停
將滑鼠懸停在 <div> 元素上可顯示一個 <p> 元素(類似於工具提示)
將滑鼠懸停在我上面可顯示 <p> 元素。
Tada! 我在這裡!
示例
p {
display: none;
background-color: yellow;
padding: 20px;
}
div:hover p {
display: block;
}
自己動手試一試 »
CSS - :first-child 偽類
:first-child 偽類匹配指定元素的第一個子元素。
匹配第一個 <p> 元素
在下面的示例中,選擇器匹配任何作為某個元素第一個子元素的 <p> 元素
匹配所有 <p> 元素中的第一個 <i> 元素
在下面的示例中,選擇器匹配所有 <p> 元素中的第一個 <i> 元素
匹配所有第一個子元素 <p> 元素中的所有 <i> 元素
在下面的示例中,選擇器匹配作為另一個元素第一個子元素的 <p> 元素中的所有 <i> 元素
CSS - :lang 偽類
:lang 偽類允許您為不同語言定義特殊規則。
在下面的示例中,:lang 為 lang="no" 的 <q> 元素定義了引號
示例
<html>
<head>
<style>
q:lang(no) {
quotes: "~" "~";
}
</style>
</head>
<body>
<p>一些文字 <q lang="no">段落中的引用</q> 一些文字。</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(語言) | 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> 元素的第一行 |
| ::marker | ::marker | 選擇列表項的標記 |
| ::selection | p::selection | 選擇使用者選定的元素部分 |