CSS 伪类和伪元素是用于选择和样式化文档中的特定元素或元素的一部分的方法,它们在使用方式和效果上有一些重要的区别

伪类

概念:

CSS中的一种选择器,用于选择HTML元素的特定状态,而不是选择元素本身。伪类可以根据用户交互、元素的位置、链接状态等条件来选择元素,从而允许你应用不同的样式或行为,通常以冒号 : 开头。

常见的伪类及其主要作用:
  1. :hover:用于选择用户鼠标悬停在元素上时的状态。通常用于创建悬停效果,如改变链接的颜色或显示工具提示。
  2. :active:用于选择用户点击元素时的状态。通常用于创建点击效果,如按钮按下时的变化。
  3. :focus:用于选择元素获得焦点时的状态,通常用于表单元素,如文本框或按钮,以突出显示当前激活的元素。
  4. :first-child:选择父元素的第一个子元素。这可用于设置第一个子元素的特定样式。
  5. :nth-child(n):选择父元素的第n个子元素。你可以使用这个伪类来选择元素列表中的某个特定元素。
  6. :not(selector):选择不匹配给定选择器的元素。这允许你排除某些元素以应用样式。
  7. :visited:选择已访问的链接元素,通常用于改变已访问链接的样式。
  8. :link:选择未访问的链接元素,通常用于改变未访问链接的样式。

伪元素

概念:

CSS中的一种选择器,用于选择元素的特定部分,而不是整个元素本身。伪元素允许你在已选择的元素内部创建或修改内容,而无需在文档结构中添加额外的HTML元素,通常以双冒号 :: 开头。

常见的伪元素及其主要作用:
  1. ::before:用于在所选元素的内容之前插入生成的内容。这通常用于在元素前面添加一些装饰性的内容,比如图标或文本。
  2. ::after:用于在所选元素的内容之后插入生成的内容。类似于::before,它也经常用于添加额外的装饰性元素。
  3. ::first-line:用于选择所选元素的第一行文本。你可以使用它来为文本的第一行应用特定的样式。
  4. ::first-letter:用于选择所选元素的第一个字母或字符。通常用于创建首字母大写或特殊的样式。
  5. ::selection:用于选择用户选择的文本部分(鼠标拖选时)。你可以使用它来自定义选中文本的样式。