css 伪类选择器
伪类选择器用于选中处于某个特定状态的元素。这种状态可能是由于用户交互,也可能是由于元素相对于其父级或兄弟元素的位置。伪类选择器始终以一个冒号(:)开始。优先级等于一个类选择器(0,1,0)。
-
:first-child——匹配的元素是其父元素的第一个子元素。
-
:last-child——匹配的元素是其父元素的最后一个子元素。
-
:only-child——匹配的元素是其父元素的唯一一个子元素(没有兄弟元素)。
-
:nth-child(an+b)——匹配的元素在兄弟元素中间有特定的位置。公式an+b里面的a和b是整数,该公式指定要选中哪个元素。要了解一个公式的工作原理,请从0开始代入n的所有整数值。公式的计算结果指定了目标元素的位置。下表给出了一些例子。
epub_31594821_576.jpg -
:nth-last-child(an+b)——类似于:nth-child(),但不是从第一个元素往后数,而是从最后一个元素往前数。括号内的公式与:nth-child()里的公式的规则相同。
-
:first-of-type——类似于:first-child,但不是根据在全部子元素中的位置查找元素,而是根据拥有相同标签名的子元素中的数字顺序查找第一个元素。
-
:last-of-type——匹配每种类型的最后一个子元素。
-
:only-of-type——该选择器匹配的元素是满足该类型的唯一一个子元素。
-
:nth-of-type(an+b)——根据目标元素在特定类型下的数字顺序以及特定公式选择元素,类似于:nth-child。
-
nth-last-of-type(an+b)——根据元素类型以及特定公式选择元素,从其中最后一个元素往前算,类似于:nth-last-child。
-
:not(<selector>)——匹配的元素不匹配括号内的选择器。括号内的选择器必须是基础选择器,它只能指定元素本身,无法用于排除祖先元素,同时不允许包含另一个排除选择器。
-
:empty——匹配的元素必须没有子元素。注意,如果元素包含空格就无法由该选择器匹配,因为空格在DOM中属于文本节点。写作本书时,W3C正在考虑:blank伪类选择器,它跟:empty的行为类似,但是能选中仅包含空格的元素,目前还没有浏览器支持:blank。
-
:focus——匹配通过鼠标点击、触摸屏幕或者按Tab键导航而获得焦点的元素。
-
:hover——匹配鼠标指针正悬停在其上方的元素。
-
:root——匹配文档根元素。对HTML来说,这是<html>元素,但是CSS还可以应用到XML或者类似于XML的文档上,比如SVG。在这些情况下,该选择器的选择范围更广。
还有一些表单域相关的伪类选择器。其中一些是在选择器Level4版本的规范中提出或者修订的,因此在IE10以及其他一些浏览器中不受支持。请在Can I Use网站上查看兼容情况。
-
:disabled——匹配已禁用的元素,包括input、select以及button元素。
-
:enabled——匹配已启用的元素,即那些能够被激活或者接受焦点的元素。
-
:checked——匹配已经针对选定的复选框、单选按钮或选择框选项。
-
:invalid——根据输入类型中的定义,匹配有非法输入值的元素。例如,当<input type="email">的值不是一个合法的邮箱地址时,该元素会被匹配(Level4)。
-
:valid——匹配有合法值的元素(Level4)。
-
:required——匹配设置了required属性的元素(Level4)。
-
:optional——匹配没有设置required属性的元素(Level4)。以上并未列出全部伪类选择器。请参阅MDN文档Pseudo-classes,查看MDN上的完整清单。