css3伪类和伪元素是什么意思

酷雪酱_1693

酷雪酱_1693

2022-01-13

4475人浏览

原创

在css3中,伪类是一种用于已有元素处于某种状态时为其添加对应样式的选择器,且这个状态是根据用户行为而动态变化的;而伪元素的意思为"假元素"或者"伪装元素",是一个用于创建一些不在DOM树中的元素,并为其添加样式的选择器。

本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。

伪类是什么

伪类是一种用于已有元素处于某种状态时(滑动、点击等)为其添加对应样式的选择器,且这个状态是根据用户行为而动态变化的。

例如:当用户悬停在指定元素时,可以通过:hover来描述这个元素的状态,虽然它和一般css相似,可以为已有元素添加样式,但是它只有处于DOM树无法描述的状态下才能为元素添加样式,所以称为伪类。

伪元素是什么

伪元素直义理解就是"假元素"或者"伪装元素"。其实也可以这么理解, 伪元素实际上就是虚拟的元素,不存在的元素(code形式), 你也无发在文档中找到他们,因此说伪元素是虚拟元素。

伪元素是一个用于创建一些不在DOM树中的元素,并为其添加样式的选择器。

通过伪元素您不需要借助元素的 ID 或 class 属性就可以对被选择元素的特定部分定义样式。例如通过伪元素您可以设置段落中第一个字母的样式,或者在元素之前、之后插入一些内容等等。

伪类和伪元素的区别:

请看下面例子:

例一:


      
  • 第一列
  •   
  • 第二列

如果我们想要给第一列添加样式,我们可以通过以下两种方式:

(1)给第一列添加一个类,并在该类中定义样式:


      
  • 第一列
  •     
  • 第二列
.first-item{color:orange;}

(2)如果不用添加类的方法,我们可以通过给第一个

  • 设置:first-child伪类来为其添加样式,这时,被修饰的li依然存在于DOM树中
    
    
        
    • 第一个
    •   
    • 第二个
    li:first-child{color:orage;}

    例二:

    <p>Hello World, and wish you have a good day!</p>

    想要给该段落第一个字母添加样式,可以有以下方法:

    (1)給第一个字母包裹元素,并给span设置样式:

    <p>
      <span>H</span>ello World, and wish you have a good day!
    </p>
    .first{color:red;}

    (2)如果不创建元素,我们可以通过给

    元素设置P:first-letter伪元素为其添加样式,这时看起来像创建了一个虚拟的span元素并为其添加样式,但实际上在DOM数中并不存在这个span元素

    <p>Hello World, and wish you have a good day!</p>
    p:first-letter{color:red;}

    从上述例子中我们可以看出:伪类的操作对象是文档树中已有的元素,而伪元素则创建了一个文档树外的元素。因此,伪类与伪元素的区别在于:有没有创建一个文档树之外的元素。

    伪元素使用单冒号还是双冒号?

    css3规范中要求使用双冒号(::)表示伪元素,以此来区分伪类和伪元素,比如::before和::after等伪元素使用双冒号(::),:hover和:active伪类使用单冒号(:)。除了一些低于IE8版本的浏览器外,大部分浏览器都支持伪元素的双冒号(::)表示方法。

    然而除了少部分伪元素如::backdrop必须使用双冒号(::),大部分伪元素都支持单冒号和双冒号的写法,比如::after,写成:after一样可以正常运行。

    w3c标准中说到,虽然CSS3标准要求伪元素使用双冒号的写法,但也依然支持单冒号的写法。为了向后兼容,我们建议你在目前还是使用单冒号的写法。

    常用伪类有:

    • :active 选择正在被激活的元素(匹配指定状态)

    • :hover 选择被鼠标悬浮着的元素(匹配指定状态)

    • :link 选择未被访问的元素 (匹配指定状态)

    • :visited 选择已被访问的元素(匹配指定状态)

    • :first-child 选择满足是其父元素的第一个子元素的元素

    • :lang(value) 选择带有指定 lang 属性的元素

      HTML5炫酷粒子动画导航菜单特效
      HTML5炫酷粒子动画导航菜单特效

      HTML5炫酷粒子动画导航菜单特效是一款导航菜单采用鼠标悬停变色的特效。

      下载
    • :focus 选择拥有键盘输入焦点的元素

    • :enable 选择每个已启动的元素

    • :disable 选择每个已禁止的元素

    • :checked 选择每个被选中的元素

    • :target 选择当前的锚点元素

    • :first-of-type 选择满足是其父元素的第一个某类型子元素的元素

    • :last-of-type 选择满足是其父元素的最后一个某类型子元素的元素

    • :only-of-type 选择满足是其父元素的唯一一个某类型子元素的元素

    • :nth-of-type(n) 选择满足是其父元素的第n个某类型子元素的元素

    • :nth-last-of-type(n) 选择满足是其父元素的倒数第n个某类型的元素

    • :only-child 选择满足是其父元素的唯一一个子元素的元素

    • :last-child 选择满足是其父元素的最后一个元素的元素

    • :nth-child(n) 选择满足是其父元素的第n个子元素的元素

    • :nth-last-child(n) 选择满足是其父元素的倒数第n个子元素的元素

    • :empty 选择满足没有子元素的元素

    • :in-range 选择满足值在指定范围内的元素

    • :out-of-range 选择值不在指定范围内的元素

    • :invalid 选择满足值为无效值的元素

    • :valid 选择满足值为有效值的元素

    • :not(selector) 选择不满足selector的元素

    • :optional 选择为可选项的表单元素,即没有“required”属性

    • :read-only 选择有"readonly"的表单元素

    • :read-write 选择没有"readonly"的表单元素

    • :root 选择根元素

    常用伪元素

    • ::first-letter 选择指定元素的第一个单词

    • ::first-line 选择指定元素的第一行

    • ::after 在指定元素的内容前面插入内容

    • ::before 在指定元素的内容后面插入内容

    • ::selection 选择指定元素中被用户选中的内容

    (学习视频分享:css视频教程)

  • 前端入门到VUE实战笔记:立即使用
    在学习笔记中,你将探索 前端 的入门与实战技巧!

    相关文章

    PHP速学视频免费教程(入门到精通)
    PHP速学视频免费教程(入门到精通)

    PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    相关标签:

    css3 伪元素

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    Tailwind CSS 响应式布局怎么写
    Tailwind CSS 响应式布局怎么写

    Tailwind CSS 响应式布局通常从移动端样式写起,再用 sm、md、lg 等前缀调整不同屏幕宽度下的网格、间距和导航。本专题整理断点配置、Grid 与 Flex 自适应布局及常见溢出问题,帮助你逐步完成多设备适配。

    2026.11.03

    0

    19

    Tailwind CSS 常用类名怎么记
    Tailwind CSS 常用类名怎么记

    Tailwind CSS 类名很多,先按布局、间距、文字、颜色和状态分组记忆,再通过官方文档检索具体写法。本专题结合类名排序、动态拼接失效、自定义实用类等问题,帮助你建立常用类名的速查方法。

    2026.11.03

    0

    12

    码上飞入口地址合集
    码上飞入口地址合集

    本专题汇总了码上飞(CodeFlying)的官方入口地址合集,涵盖官网主站及网页版在线使用入口,支持注册登录后直接在线体验零代码AI应用生成。同时整理了APP端下载渠道与小程序入口,助你快速访问平台,通过自然语言描述需求即可生成应用、小程序或网站。

    2026.11.03

    0

    10

    Uvicorn 报错与问题解决教程
    Uvicorn 报错与问题解决教程

    本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

    2026.11.02

    20

    14

    Uvicorn使用教程
    Uvicorn使用教程

    本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。

    2026.11.02

    20

    17

    Uvicorn安装配置教程
    Uvicorn安装配置教程

    本专题汇总了Uvicorn的安装配置教程与部署指南,涵盖通过pip安装Uvicorn、启动FastAPI/Starlette应用、开发模式热重载(--reload)及多进程工作模式配置等核心操作。同时整理了结合Gunicorn的生产部署方案、HTTPS与反向代理配置及性能调优技巧,助你快速完成Uvicorn服务的安装与上线部署。

    2026.11.02

    20

    17

    Vite 项目如何打包和部署
    Vite 项目如何打包和部署

    Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

    2026.10.28

    120

    16

    Vite 如何搭配 Vue.js
    Vite 如何搭配 Vue.js

    Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

    2026.10.28

    100

    15

    Vite 项目目录怎么看
    Vite 项目目录怎么看

    Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

    2026.10.28

    300

    10

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    CSS3 教程
    CSS3 教程

    共18课时 | 16.7万人学习

    HTML5/CSS3/JavaScript/ES6入门课程
    HTML5/CSS3/JavaScript/ES6入门课程

    共102课时 | 11万人学习

    HTML+CSS基础与实战
    HTML+CSS基础与实战

    共132课时 | 19.5万人学习