Pseudo-class
一个 CSS 伪类(pseudo-class)是一个以冒号作为前缀的关键字,当你希望样式在特定状态下才被呈现到指定的元素时,你可以往元素的选择器后面加上对应的伪类(pseudo-class)。
:root
匹配文档树的根元素, 它比html选择器的优先度更高
:not(X)
匹配不符合参数选择器描述的元素, 且不可嵌套:not()
:target
匹配一个特殊的元素, 该元素的id为url中的片段标识符(黑科技)
:active
匹配被用户激活的元素,通常用于<a>和<button>元素
这个样式可能会被后声明的其他链接相关的伪类覆盖,这些伪类包括:link,:hover和:visited。为了正常加上样式,需要把 :active的样式放在所有链接相关的样式后,这种链接伪类先后顺序被称为LVHA顺序: :link— :visited— :hover— :active。
:checked
匹配选中状态的radio, checkbox和option元素
:any
:default ?
:default CSS 伪类表示在一组相似元素中所有默认的用户交互元素。
:enabled 和 :disabled
分别匹配任何启用的元素和禁用的元素, 如果一个元素能够被激活(如选择, 点击或接受文本输入)或获取焦点,则该元素是启用的
:empty
匹配没有子元素的元素, 子元素包括元素节点和文本, 其中注释不会被算作文本
:first
匹配打印文档的时候, 第一页的样式(不常用)
:first-child, :last-child, :nth-child(an+b), :nth-last-child(an+b), :only-child
匹配一组兄弟元素中的第一个元素
匹配一组兄弟元素中的最后一个元素
匹配一组兄弟节点中的第an + b个元素, 且括号中的值可为odd(奇数)和even(偶数)
匹配一组兄弟节点中的倒数第an + b个元素, 且括号中的值可为odd(奇数)和even(偶数)
匹配属于某个父元素的唯一一个子元素, 等效的写法还有:first-child:last-child或者:nth-child(1):nth-last-child(1)
:first-of-type, :last-of-type, :nth-of-type(n), nth-last-of-type(n), :only-of-type
匹配一组兄弟元素中其类型的第一个元素
匹配一组兄弟元素中其类型的最后一个元素
匹配一组兄弟元素中其类型的第n个元素
匹配一组兄弟元素中其类型的倒数第n个元素
匹配任意一个没有其他相同类型兄弟元素的元素
:lang()?
Pseudo-element
伪元素和伪类有点相似, 它的关键字前有两个冒号, 通过加在选择器后面来匹配元素的某个部分
::after, ::before
用来创建一个伪元素,做为已选中元素的最后/第一一个子元素. 通常会配合content属性来为该元素添加装饰, 该元素默认为行内元素
::first-letter, first-line
匹配元素中的第一个文字和第一行
::selection
用于匹配文档中被用户高亮选中的部分
只有一小部分属性能用于::selection选择器: color, background-color, cursor, outline, text-decoration, textemphasis-color和text-shadow