CSS 偽元素
什麼是偽元素?
CSS 偽元素用於樣式化元素的特定部分。
例如,它可以用於
- 樣式化元素的第一個字母或第一行
- 在元素內容之前或之後插入內容
語法
偽元素的語法
selector::pseudo-element {
property: value;
}
::first-line 偽元素
::first-line
偽元素用於為文字的第一行新增特殊樣式。
以下示例格式化所有 <p> 元素中的文字的第一行
注意:::first-line
偽元素只能應用於塊級元素。
以下屬性適用於 ::first-line
偽元素
- 字型屬性
- 顏色屬性
- 背景屬性
- word-spacing
- letter-spacing
- text-decoration
- vertical-align
- text-transform
- line-height
- 清除
注意雙冒號表示法 - ::first-line
與 :first-line
在 CSS3 中,雙冒號取代了偽元素的單冒號表示法。這是 W3C 試圖區分偽類和偽元素。
在 CSS2 和 CSS1 中,偽類和偽元素都使用單冒號語法。
為了向後相容,CSS2 和 CSS1 偽元素可以使用單冒號語法。
::first-letter 偽元素
::first-letter
偽元素用於為文字的第一個字母新增特殊樣式。
以下示例格式化所有 <p> 元素中的文字的第一個字母:
注意:::first-letter
偽元素只能應用於塊級元素。
以下屬性適用於 ::first-letter 偽元素:
- 字型屬性
- 顏色屬性
- 背景屬性
- 外邊距屬性
- 內邊距屬性
- 邊框屬性
- text-decoration
- vertical-align(僅當 "float" 為 "none" 時)
- text-transform
- line-height
- float
- 清除
偽元素和 HTML 類
偽元素可以與 HTML 類結合使用:
上面的示例將以紅色和更大的字型大小顯示 class="intro" 的段落的第一個字母。
多個偽元素
還可以組合多個偽元素。
在以下示例中,段落的第一個字母將為紅色,字型大小為 xx-large。第一行的其餘部分將為藍色,並採用小型大寫字母。段落的其餘部分將為預設字型大小和顏色
示例
p::first-letter {
color: #ff0000;
font-size: xx-large;
}
p::first-line {
color: #0000ff;
font-variant: small-caps;
}
自己動手試一試 »
CSS - ::before 偽元素
::before
偽元素可用於在元素內容之前插入一些內容。
以下示例在每個 <h1> 元素的內容之前插入一個影像
CSS - ::after 偽元素
::after
偽元素可用於在元素內容之後插入一些內容。
以下示例在每個 <h1> 元素的內容之後插入一個影像
CSS - ::marker 偽元素
::marker
偽元素選擇列表項的標記。
以下示例樣式化列表項的標記
CSS - ::selection 偽元素
::selection
偽元素匹配使用者選擇的元素部分。
以下 CSS 屬性可應用於 ::selection
:color
、background
、cursor
和 outline
。
以下示例使選定的文字在黃色背景上顯示為紅色
所有 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 | 選擇使用者選擇的元素部分 |
所有 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 | 選擇所有已訪問的連結 |