伪类(Pseudo-class)和伪元素(Pseudo-element)是 CSS 中的两个概念,用于选择页面中的特定元素,但它们在用法和功能上有一些区别。
伪类用于选择符合特定条件的元素,而伪元素用于选择元素的特定部分。以下是它们的区别:
-
伪类(Pseudo-class):
- 伪类用于选择符合某种状态或条件的元素。例如,
:hover
用于选中鼠标悬停在元素上的状态,:focus
用于选中获得焦点的表单元素。 - 伪类由一个冒号
:
加上名称组成,应用于已存在于文档树中的元素。 - 伪类可以与普通选择器组合使用,例如
div:hover
。 - 一个元素可以同时拥有多个伪类,例如
a:visited:hover
。
- 伪类用于选择符合某种状态或条件的元素。例如,
-
伪元素(Pseudo-element):
- 伪元素用于选择元素的某个部分,例如选中元素的第一个字母或最后一个子元素。
- 伪元素由两个冒号
::
加上名称组成,用于创建文档树中不存在的虚拟元素部分。 - 伪元素通常用于为选中的元素添加特定的样式或内容。
- 一个元素一般只能拥有一个伪元素。
以下是一些常见的伪类和伪元素的示例:
伪类示例:
:hover
- 鼠标悬停在元素上时的状态。:focus
- 元素获得焦点时的状态。:nth-child(n)
- 选择父元素中第 n 个子元素。-
伪元素示例:
::before
- 在选中元素的前面插入一个虚拟元素。::after
- 在选中元素的后面插入一个虚拟元素。::first-letter
- 选择选中元素的第一个字母。::first-line
- 选择选中元素的第一行。-
总的来说,伪类用于选择元素的状态或条件,而伪元素用于选择元素的某个部分。它们在 CSS 中提供了更丰富的选择器功能,帮助开发者更精确地选择和样式化页面中的元素。