伪类和伪元素
INFO
● 伪元素的操作对象是新生成的 dom 元素,而不是原来 dom 结构里就存在的;而伪类恰好相反,伪类的操作对象是原来的 dom 结构里就存在的元素。
● 伪元素与伪类的根本区别在于:操作的对象元素是否存在于原来的 dom 结构里。
-伪元素-
::before/:before
::after/:after
::first-letter/:first-letter
用来指定元素第一个字母的样式
::first-line/:first-line
用来指定选择器第一行的样式
::selection
匹配元素中被用户选中或处于高亮状态的部分
::placeholder
::backdrop
控制需要视觉聚焦的元素后面的背景元素样式
-伪类-状态-
:link
向未访问的链接添加特殊的样式
:visited
向访问过的链接添加特殊的样式
:hover
在鼠标移到链接上时添加的特殊样式
:active
向活动的链接添加特殊的样式
:focus
用于选择具有焦点的元素
-伪类-结构化-
:not
匹配每个元素是不是指定的元素/选择器
:first-child
匹配其父元素中的第一个子元素
:last-child
选取属于其父元素的最后一个子元素
:first-of-type
匹配元素其父级是特定类型的第一个子元素和 :nth-of-type(1) 是一个意思。
:last-of-type
匹配元素其父级是特定类型的最后一个子元素和:nth-last-of-type(1)是一个意思。
:nth-child
匹配父元素中的第 n 个子元素,元素类型没有限制 n 可以是一个数字,一个关键字,或者一个公式
:nth-last-child
匹配属于其元素的第 N 个子元素的每个元素,不论元素的类型,从最后一个子元素开始计数 n 可以是一个数字,一个关键字,或者一个公式。
:nth-of-type
匹配同类型中的第 n 个同级兄弟元素
:nth-last-of-type
匹配同类型中的倒数第 n 个同级兄弟元素
:only-child
匹配属于父元素中唯一子元素的元素
:only-of-type
代表了任意一个元素,这个元素没有其他相同类型的兄弟元素
:target
可用于当前活动的 target 元素的样式
-伪类-语言相关-
:dir
匹配特定文字书写方向的元素
:lang
向带有指定 lang 属性开始的元素添加样式
-伪类-表单相关-
:checked
匹配每个选中的输入元素(仅适用于单选按钮或复选框)
:default
表示一组相关元素中的默认表单元素
:disabled
匹配每个禁用的的元素(主要用于表单元素)
:empty
选择每个没有任何子级的元素(包括文本节点)
:enabled
匹配每个启用的的元素(主要用于表单元素)
:in-range
用于标签的值在指定区间值时显示的样式
:out-of-range
用于标签的值在指定区间之外时显示的样式
:indeterminate
表示状态不确定的表单元素
:valid
在表单元素的值需要根据指定条件验证时设置指定样式
:invalid
用于在表单元素中的值是非法时设置指定样式
:optional
在表单元素是可选项时设置指定样式
:required
在表单元素是必填项时设置指定样式
:read-only
用于选取设置了 "readonly" 属性的元素
:read-write
用于匹配可读及可写的元素
:scope
表示作为选择器要匹配的参考点的元素
-伪类-其他-
:root
匹配文档的根元素
:fullscreen
应用于当前处于全屏显示模式的元素不仅仅选择顶级元素,还包括所有已显示的栈内元素。