CSS 偽類參考手冊

CSS 偽類

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

例如,它可以用于:

  • 當用戶將鼠標懸停在元素上時設置樣式
  • 為已訪問和未訪問的鏈接設置不同的樣式
  • 當元素獲得焦點時設置樣式
  • 為有效/無效/必填/選填的表單元素設置樣式

下表展示了 CSS 中不同的偽類:

偽類 例子 例子描述
:active a:active 選擇活動鏈接
:any-link a:anylink 選擇所有帶有 href 屬性的 <a> 或 <area> 元素。
:auto-fill input:autofill 選擇所有由瀏覽器自動填充值的 <input> 元素。
:checked option:checked 匹配所有被選中的 <input> 或 <option> 元素。
:default input:default 選擇一組相關元素中的默認表單元素。
:defined :defined 選擇所有已定義的元素(標準或自定義元素)。
:dir() :dir(rtl) 選擇具有指定文本方向的元素。
:disabled option:disabled 選擇所有被禁用的元素,常用于表單元素。
:empty div:empty 選擇所有沒有子元素(包括文本節點)的元素。
:enabled input:enabled 選擇所有啟用的元素,常用于表單元素。
:first @page :first 表示打印文檔的第一頁(與 @page 規則一起使用)。
:first-child p:first-child 選擇作為其父元素第一個子元素的元素(在一組兄弟元素中)。
:first-of-type li:first-of-type 選擇一組兄弟元素中第一個特定類型的元素。
:focus select:focus 選擇獲得焦點的元素,常用于表單元素。
:focus-visible button:focus-visible 選擇獲得焦點的元素(僅在通過鍵盤而非鼠標聚焦時應用焦點樣式)。
:focus-within form:focus-within 匹配元素或其任何后代獲得焦點的元素。
:fullscreen :fullscreen 選擇當前處于全屏模式的元素。
:has() h2:has(+p) 選擇緊接在 <p> 元素后的 <h2> 元素,并將樣式應用于 <h2>。
:hover a:hover 選擇鼠標懸停的元素。
:in-range input:in-range 選擇值在指定范圍內的 <input> 元素。
:indeterminate input:indeterminate 選擇處于不確定狀態的表單元素。
:invalid input:invalid 選擇無效的表單元素。
:is() :is(ul, ol) 選擇所有 <ul> 和 <ol> 元素。
:lang() p:lang(it) 選擇 lang 屬性為 "it"(意大利語)的 <p> 元素。
:last-child li:last-child 選擇作為其父元素最后一個子元素的 <li> 元素。
:last-of-type p:last-of-type 選擇作為其父元素最后一個 <p> 元素的 <p> 元素。
:left @page :left 表示打印文檔的所有左側頁面(與 @page 規則一起使用)。
:link a:link 選擇所有未訪問的鏈接。
:modal :modal 選擇處于模態狀態的元素。
:not() :not(p) 選擇所有不是 <p> 元素的元素。
:nth-child() p:nth-child(2) 選擇作為其父元素第二個子元素的 <p> 元素。
:nth-last-child() p:nth-last-child(2) 選擇作為其父元素倒數第二個子元素的 <p> 元素。
:nth-last-of-type() p:nth-last-of-type(2) 選擇作為其父元素倒數第二個 <p> 元素的 <p> 元素。
:nth-of-type() p:nth-of-type(2) 選擇作為其父元素第二個 <p> 元素的 <p> 元素。
:only-child p:only-child 選擇作為其父元素唯一子元素的 <p> 元素。
:only-of-type p:only-of-type 選擇作為其父元素唯一 <p> 元素的 <p> 元素。
:optional textarea:optional 選擇沒有 required 屬性的 <input>、<select> 或 <textarea> 元素。
:out-of-range input:out-of-range 選擇值超出指定范圍的 <input> 元素。
:placeholder-shown input:placeholder-shown 選擇當前顯示占位符文本的 <input> 或 <textarea> 元素。
:popover-open :popover-open 選擇處于顯示彈出狀態的元素。
:read-only input:read-only 選擇帶有 readonly 屬性的輸入元素。
:read-write input:read-write 選擇可編輯的輸入元素。
:required input:required 選擇帶有 required 屬性的輸入元素。
:right @page :right 表示打印文檔的所有右側頁面(與 @page 規則一起使用)。
:root :root 選擇文檔的根元素。
:scope :scope 選擇作為選擇器匹配參考點或范圍的元素。
:state() :state() 選擇具有指定自定義狀態的自定義元素。
:target :target 選擇當前活動的目標元素。
:user-invalid :user-invalid 選擇具有無效值的表單元素(在用戶與其交互后)。
:user-valid :user-valid 選擇具有有效值的表單元素(在用戶與其交互后)。
:valid input:valid 選擇所有具有有效值的輸入元素。
:visited a:visited 選擇所有已訪問的鏈接。
:where() :where(ol, ul) 選擇所有 <ul> 和 <ol> 元素。