(接上篇的虛擬類別選擇器部分)
:enabled
是啟用狀態,也是預設設定,:disabled
是停用狀態,比較常用,被停用的元素會顯示在畫面上,但無法被選取、啟用,或做任何使用者互動。:checked
為選取狀態,預設是為選取狀態,但沒有:unchecked
這個選擇器。另外,也可以用新出現的選擇器:indeterminate
表示不是選取或非選取的狀態,但這個虛擬類別只能透過DOM腳本設定,使用者無法自行設定,且這只是純視覺效果,不會影響元素實際狀態,元素的實際狀態,只有選取或非選取兩種。:default
會指向一組類似元素中預設的使用者介面元素,一般用在表單項目、按鈕、選單等部分,:default
會指向一開始就被選取的元素(可以和:checked
一起使用)。:required
會選取所有必填的表單控制項,:optional
則會選取沒有required屬性或required屬性為false的控制項(在HTML中寫成<input type="email" required>
、或是<input type="email" required="false">
),但表單輸入元素外的元素,都不能是必填或選填。:valid
代表使用者輸入值通過所有本身驗證條件的使用者輸入元素,invalid
則指向不滿足本身條件驗證的使用者輸入元素,這兩個虛擬類別只能用在有能力驗證資料的元素,因此<div>
元素不能用,<input>
元素能用。但使用:valid
和:invalid
時會因為不同系統樣式給出不同回應數值,所以謹慎使用。:in-range
,和超出範圍out-of-range
兩種。另外,HTML5可以設定step屬性,所以如果值落在min和max之間,但不符合step的設定值,就會出現同時符合:in-range
和invalid
的情況(例如HTML寫成<input id="test" type="number" min="0" max="1000" step="10" value="">
):read-write
能讓使用者編輯輸入項,其中HTML中所有非停用、非唯讀的input元素,以及被設定contenteditable屬性的元素都屬都屬於此類,其餘元素的預設都是:read-only
,但可以通過在HTML中設定contenteditable屬性來改變。(介面狀態虛擬類別結束,虛擬類別選擇器未完)