Skip to content
On this page

伪类和伪元素

INFO

● 伪元素的操作对象是新生成的 dom 元素,而不是原来 dom 结构里就存在的;而伪类恰好相反,伪类的操作对象是原来的 dom 结构里就存在的元素。

● 伪元素与伪类的根本区别在于:操作的对象元素是否存在于原来的 dom 结构里。

-伪元素-

::before/:before

::after/:after

::first-letter/:first-letter

用来指定元素第一个字母的样式

::first-line/:first-line

用来指定选择器第一行的样式

::selection

匹配元素中被用户选中或处于高亮状态的部分

::placeholder

::backdrop

控制需要视觉聚焦的元素后面的背景元素样式

-伪类-状态-

向未访问的链接添加特殊的样式

: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

应用于当前处于全屏显示模式的元素不仅仅选择顶级元素,还包括所有已显示的栈内元素。

Released under the MIT License.