Warning:
This wiki has been archived and is now read-only.
HTML5/Matching HTML elements using selectors
From HTML5 Chinese Interest Group Wiki
< HTML5
用选择器匹配HTML元素
大小写敏感
选择器规范把Id名、类名、元素名、属性名、和属性值的大小写敏感交给宿主语言来定义。 [SELECTORS]
文档中HTMLElement唯一识别符的选择符匹配在怪异模式下应该被视为ASCII码,并且大小写不敏感。
文档中HTMLElement的class属性表示的类名选择符匹配在怪异模式下应该被视为ASCII码,并且大小写不敏感。
HTML文档中的HTMLElement的属性和名称在怪异模式下应该被视为ASCII码,并且大小写不敏感。
剩下的其他任何(HTML元素上的属性值,在怪异模式和怪异模式下的 Ids 和 classes,在XML 文档中的元素名称、属性名称和属性值)在选择符匹配时应该要被视为大小写敏感。
伪类
这里是一些可以用在HTML上的一些动态选择器。本节定义了什么时候这些选择器匹配HTML元素。[SELECTORS] [CSSUI]
:link
:visited
:active
此伪类是为匹配当某一个元素已被用户所激活过而定义的。为了明显的区分界定
:active
伪类,HTML客户端会把元素认为是已被激活过的如果它是:
- 一个满足以下几种分类的元素,当用户开始表明意图触发元素的激活行为、和用户表明意图停止触发元素的激活行为或是元素激活行为已经完成运行的这段时间。
- 有href 属性的 a 元素
- 有href 属性的 area 元素
- 有href 属性的 link 元素
- 没有被禁用的 button 元素
- type 属性设置为 submit、image、reset、button 的input 元素
- 没有被设为 disabled 属性的 commend 元素
- 有 tabindex 标志位的元素
举例来说,如果用户用键盘的空格键来按下一个button,那么这个button在收到一个 keypress 事件和一个 keyup事件之间的这段时间会被 :active 伪类匹配
- 被用户用指针设备指向,并且指针设备的状态是按下的元素(举例来说,对一个鼠标按钮在按下和弹起的这段时间)
- 有子元素当前匹配:active伪类的元素
:enabled
此伪类匹配任何属于以下类别之一的元素:
- 有href 属性的 a 元素
- 有href 属性的 area 元素
- 有href 属性的 link 元素
- 没有被禁用的 button 元素
- type 属性不为 hidden并且没有被禁用的 input 元素
- 没有被禁用的 select 元素
- 没有被禁用的 textarea 元素
- 没有被设为 disabled 属性的 optgroup 元素
- 没有禁用的 option 元素
- 没有被设为 disabled 属性的 commend 元素
- 当一个menu 元素的子元素定义了一条命令,menu 元素这类子元素的第一个元素不为禁用状态的情况下,属于menu元素的子元素的 li 元素。
- 没有被设为 disabled 属性的 fieldset 元素
:disabled
此伪类匹配任何属于以下类别之一的元素:
- 被禁用的button 元素
- type 属性不为 hidden并且被禁用的 input 元素
- 被禁用的select 元素
- 被禁用的 textarea 元素
- 设有disable 属性的 optgroup 元素
- 被禁用的option 元素
- 设有disable 属性的 command 元素
- 当一个menu 元素的子元素定义了一条命令,menu 元素这类子元素的第一个元素为禁用状态的情况下,属于menu元素的子元素的 li 元素。
- 设有 disabled 属性的 fieldset 元素
:checked
此伪类匹配任何属于以下类别之一的元素:
- type 属性为复选框状态,并且当前为选中状态的 input 元素
- type 属性为单选框状态,并且当前为选中状态的 input 元素
- 当前被选中的 option 元素
- type 属性为复选框状态,并且当前为选中状态的 commend 元素
- type 属性为单选框状态,并且当前为选中状态的 commend 元素
:indeterminate
此伪类匹配任何属于以下类别之一的元素:
- type 属性为复选框,indeterminate IDL属性设为true的 input 元素
- 没有内容属性的progress 元素
:default
此伪类匹配任何属于以下类别之一的元素:
- 属于表单的默认按钮的按钮元素
- type 属性为submit 或者 image,并且为表单默认按钮的input 元素
- 有checked 属性并且属性生效的 input 元素
- 被选中的option 元素
:valid
:invalid
:in-range
:out-of-range
:required
此伪类匹配任何属于以下类别之一的元素:
- 必要的 input 元素
- 具有 required 属性的 select 元素
- 具有 required 属性的 textarea 元素
:optional
此伪类匹配任何属于以下类别之一的元素:
- 不必要的 input 元素
- 不具有 required 属性的 select 元素
- 不具有 required 属性的 textarea 元素
:read-only
:read-write
:read-write 伪类匹配任何属于以下类别之一的元素:
:read-only 伪类 会匹配所有HTML元素
- 适用于只读属性,并且内容不是固定的input 元素(例如,没有声明只读属性,且不是disable状态的 input 元素)
- 没有声明只读属性,且不是disable状态的 textarea 元素
- 可被编辑或正被编辑的其他不是 input 和 textarea 的元素。
:dir(ltr)
此伪类匹配任何文字方向性为 ltr 的元素:
:dir(rtl)
此伪类匹配任何文字方向性为 rtl的元素:
注: 本规范的另外一个章节定义了:target 伪类和target 元素
注: 本规范没有定义那些 :hover :focus 或者是 :lang() 动态伪类,因为这些都在[|选择器规范]定义的足够详细