伪元素
伪元素则基于元素的位置来添加内容或样式
在内容元素的前后插入额外的元素或样式,但是这些元素实际上并不在文档中生成。它们只在外部显示可见,但不会在文档的源代码中找到它们,因此,称为“伪”元素。
伪元素通常用双冒号::
来表示 (在实际使用中,一些旧的伪元素如:before
和:after
仍然被广泛接受)
常见的伪元素:
-
::before
和::after
:用于在选定元素的内容之前和之后插入内容
通常与content属性一起使用,可以插入文本、图像或其他内容。
它们不占用DOM节点,使得CSS能够解决一部分JavaScript的问题,同时避免增加无意义的页面元素。 -
::first-line
:用于选择元素的第一行文本
允许开发者为元素的首行文本应用特殊的样式。 -
::first-letter
:用于为块级元素的第一个字母设置样式
常用于设计特殊的首字下沉或装饰性效果。 -
::selection
:定义用户选择(或高亮)文本时的样式
可以自定义选中文本的背景色、字体颜色等外观。 -
::placeholder
:用于选择输入框的占位符文本
允许开发者为占位符文本设置样式。
伪元素通常与其他选择器一起使用,以指定要应用样式的具体元素。
这些伪元素提供了在不增加实际DOM元素的情况下,为页面元素添加样式和内容的能力,使得CSS的设计更加灵活和富有创意。
伪类
伪类基于元素的状态来添加特殊效果
将特殊的效果添加到特定选择器上。它是已有元素上添加类别的,不会产生新的元素。
伪类通常用单冒号:
来表示
常见的伪类:
-
:hover
:这个伪类用于鼠标悬停在元素上时改变元素的样式
通常用于定义元素的悬停效果,如改变颜色、背景或显示额外的信息。 -
:active
:当元素被用户激活时(如鼠标点击但还未释放时),该伪类用于改变元素的样式
它通常用于表示元素被点击的状态。 -
:focus
:用于元素获得焦点时的样式
例如,在输入框中键入文本时,输入框会获得焦点,此时可以使用:focus
来改变输入框的边框颜色或样式。 -
:visited
:用于已访问的链接
可以改变其颜色或样式,以区分已访问和未访问的链接。 -
:first-child
:用于选择其父元素的第一个子元素,并为其应用特定的样式。 -
:last-child
:用于选择其父元素的最后一个子元素(与:first-child
相反) -
:not()
:用于排除某些元素,只选择不符合特定条件的元素。 -
:checked
:用于表单元素,特别是单选框和复选框,当元素被选中时,会应用特定的样式。 -
:nth-child(n)
和:nth-of-type(n)
:用于选择父元素的第n个子元素或特定类型的第n个子元素
例如,:nth-child(odd)
和:nth-child(even)
可以用于选择奇数和偶数行,实现表格的斑马线效果。 -
:empty
:这个伪类用于选择没有子元素的元素。
这些伪类通常与CSS类选择器和ID选择器一起使用,以实现更多的样式控制。