CSS 伪元素和伪类的用法和区别

伪元素

伪元素则基于元素的位置来添加内容或样式

在内容元素的前后插入额外的元素或样式,但是这些元素实际上并不在文档中生成。它们只在外部显示可见,但不会在文档的源代码中找到它们,因此,称为“伪”元素。

伪元素通常用双冒号::来表示 (在实际使用中,一些旧的伪元素如:before:after仍然被广泛接受)

常见的伪元素:

  1. ::before::after:用于在选定元素的内容之前和之后插入内容
    通常与content属性一起使用,可以插入文本、图像或其他内容。
    它们不占用DOM节点,使得CSS能够解决一部分JavaScript的问题,同时避免增加无意义的页面元素。

  2. ::first-line:用于选择元素的第一行文本
    允许开发者为元素的首行文本应用特殊的样式。

  3. ::first-letter:用于为块级元素的第一个字母设置样式
    常用于设计特殊的首字下沉或装饰性效果。

  4. ::selection:定义用户选择(或高亮)文本时的样式
    可以自定义选中文本的背景色、字体颜色等外观。

  5. ::placeholder:用于选择输入框的占位符文本
    允许开发者为占位符文本设置样式。

伪元素通常与其他选择器一起使用,以指定要应用样式的具体元素。

这些伪元素提供了在不增加实际DOM元素的情况下,为页面元素添加样式和内容的能力,使得CSS的设计更加灵活和富有创意。


伪类

伪类基于元素的状态来添加特殊效果

将特殊的效果添加到特定选择器上。它是已有元素上添加类别的,不会产生新的元素。

伪类通常用单冒号:来表示

常见的伪类:

  1. :hover:这个伪类用于鼠标悬停在元素上时改变元素的样式
    通常用于定义元素的悬停效果,如改变颜色、背景或显示额外的信息。

  2. :active:当元素被用户激活时(如鼠标点击但还未释放时),该伪类用于改变元素的样式
    它通常用于表示元素被点击的状态。

  3. :focus:用于元素获得焦点时的样式
    例如,在输入框中键入文本时,输入框会获得焦点,此时可以使用:focus来改变输入框的边框颜色或样式。

  4. :visited:用于已访问的链接
    可以改变其颜色或样式,以区分已访问和未访问的链接。

  5. :first-child:用于选择其父元素的第一个子元素,并为其应用特定的样式。

  6. :last-child:用于选择其父元素的最后一个子元素(与:first-child相反)

  7. :not():用于排除某些元素,只选择不符合特定条件的元素。

  8. :checked:用于表单元素,特别是单选框和复选框,当元素被选中时,会应用特定的样式。

  9. :nth-child(n):nth-of-type(n):用于选择父元素的第n个子元素或特定类型的第n个子元素
    例如,:nth-child(odd)和:nth-child(even)可以用于选择奇数和偶数行,实现表格的斑马线效果。

  10. :empty:这个伪类用于选择没有子元素的元素。

这些伪类通常与CSS类选择器和ID选择器一起使用,以实现更多的样式控制。

相关推荐

  1. CSS 元素区别

    2024-04-21 23:56:01       39 阅读
  2. css元素区别

    2024-04-21 23:56:01       60 阅读
  3. CSS元素区别作用?

    2024-04-21 23:56:01       50 阅读
  4. css3 中元素

    2024-04-21 23:56:01       23 阅读
  5. 元素区别是什么?

    2024-04-21 23:56:01       39 阅读
  6. css元素选择器

    2024-04-21 23:56:01       34 阅读
  7. css元素 :: before

    2024-04-21 23:56:01       27 阅读
  8. 元素::before :: after

    2024-04-21 23:56:01       23 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-21 23:56:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-21 23:56:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-21 23:56:01       82 阅读
  4. Python语言-面向对象

    2024-04-21 23:56:01       91 阅读

热门阅读

  1. 开发语言漫谈-rust

    2024-04-21 23:56:01       35 阅读
  2. C++ 多线程

    2024-04-21 23:56:01       33 阅读
  3. git远程仓库拉取超过1G报错解决办法

    2024-04-21 23:56:01       33 阅读
  4. Android 一键唤醒应用

    2024-04-21 23:56:01       37 阅读
  5. 搜索文件1.0

    2024-04-21 23:56:01       36 阅读
  6. ubuntu 监控查看硬件温度

    2024-04-21 23:56:01       30 阅读
  7. Android --- 布局与点击事件

    2024-04-21 23:56:01       33 阅读
  8. 适配器模式

    2024-04-21 23:56:01       33 阅读