总结

  1. 选择对象不同
内容说明
伪类作用对象元素的状态或位置
伪元素作用对象元素的一部分内容或虚拟内容
是否新增节点均不新增节点
常用符号:(伪类)、::(伪元素)
推荐场景伪类用于交互与状态控制;伪元素用于样式修饰与内容插入

31. 伪类和伪元素的区别

一、基本定义

类型定义
伪类(Pseudo-class)用于表示元素的某种状态或位置,如链接的点击状态、鼠标悬停、第一个子元素等。
伪元素(Pseudo-element)用于选择元素的某一部分内容或虚拟部分,如首字母、首行、插入内容等。

二、核心区别对比表

对比维度伪类(Pseudo-class)伪元素(Pseudo-element)
表示符号单冒号 :双冒号 ::(部分旧写法也用单冒号)
作用对象元素本身的状态或位置元素的某一部分或虚拟内容
是否新增 DOM 节点❌ 不新增节点❌ 不新增节点(但创建虚拟内容)
是否可交互✅ 可以触发交互(如 :hover:active❌ 不可交互(仅样式控制)
是否可被脚本访问✅ 可以通过 JS 控制❌ 无法通过 JS 控制(非真实 DOM)
常见示例:hover:nth-child():focus::before::after::first-line

三、常见伪类示例

伪类描述
:hover鼠标悬停时的状态
:active元素被激活时(如点击)
:focus元素获得焦点时
:visited已访问的链接
:first-child第一个子元素
:last-child最后一个子元素
:nth-child(n)第 n 个子元素
:not(selector)排除某个选择器匹配的元素
示例:
a:hover {color: red;
}li:nth-child(odd) {background-color: #f0f0f0;
}

四、常见伪元素示例

伪元素描述
::before在元素内容前插入内容
::after在元素内容后插入内容
::first-line选择元素的第一行文本
::first-letter选择元素的第一个字符
::selection选择用户选中的文本部分
::placeholder输入框的占位符文本
示例:
p::first-letter {font-size: 2em;float: left;
}.button::after {content: " ➤";color: blue;
}

五、使用场景对比

场景推荐方式说明
鼠标悬停效果:hover实现按钮、链接的交互效果
列表奇偶行样式:nth-child()表格、列表的视觉优化
插入装饰内容::before / ::after图标、提示、装饰性内容
首字下沉效果::first-letter文章、杂志类页面美化
自定义选中样式::selection提升用户选中文本的视觉体验
表单占位符美化::placeholder统一输入框风格

六、注意事项

注意点说明
::before::after 必须配合 content使用否则不会显示
伪类可以组合使用a:hover::after 是合法的
伪元素不能绑定事件因为不是真实 DOM
双冒号是标准写法用于区分伪类和伪元素(但浏览器兼容旧写法)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91525.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91525.shtml
英文地址,请注明出处:http://en.pswp.cn/web/91525.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT、Playground手动模拟Agent摘要缓冲混合记忆功能

01. 摘要缓冲混合记忆 摘要缓冲混合记忆中,所需的模块有: chat_message_history:存储历史消息列表。moving_summary_buffer:移除消息的汇总字符串。summary_llm:生成摘要的 LLM,接收 summary(…

全国青少年信息素养大赛(无人飞行器主题赛(星际迷航)游记)

作者 FHD_WOLF 发布时间 2025-07-30 21:31 分类 生活游记 骑你的 白马啊 行你欲行的路 风吹来 花落涂 点一欉香祈求 ---------万千花蕊慈母悲哀从考场出来,剩下的只有无尽极乐 考前准备: 1.电脑充电。 (这个赛项需要自带设备&#x…

Kubernetes (K8s) 部署资源的完整配置OceanBase

Kubernetes Deployment 配置(oceanbase-deployment.yaml) # oceanbase-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata:name: oceanbase-deployment spec:replicas: 1selector:matchLabels:app: oceanbasetemplate:metadata:labels:app…

ACS-电机控制Buffer-任意路径规划(PVSPLINE绘制圆形)

该程序是一个双轴运动,绘制圆形 原始程序(可以直接使用) GLOBAL INT X1,Y1,ii GLOBAL REAL MY_ARRAY(4)(12) GLOBAL REAL piX1 0; Y1 1 ! Axis assignment pi ACOS(-1) ! Shortcut for generating piii 0 LOOP 12MY_ARRAY(0)(ii) COS(…

MongoDB Change Streams 实时数据变更流处理实战指南

MongoDB Change Streams 实时数据变更流处理实战指南 业务场景描述 在大型电商平台或高并发的在线系统中,业务数据的变更(如订单状态、库存变动、用户行为日志)需要实时通知下游系统,以便做流式分析、缓存更新或消息推送。传统的轮…

TIME WEAVER: A Conditional Time Series Generation Model论文阅读笔记

TIME WEAVER: A Conditional Time Series Generation Model 摘要 想象一下,根据天气、电动汽车的存在和位置生成一个城市的电力需求模式,这可以用于在冬季冻结期间进行容量规划。这样的真实世界的时间序列通常包含配对的异构上下文元数据(天气…

Day 4-2: PyTorch基础入门 - 从NumPy到深度学习的桥梁

Day 4-2: PyTorch基础入门 - 从NumPy到深度学习的桥梁 📚 核心概念(5分钟理解) 一句话定义 PyTorch是Facebook开发的深度学习框架,将NumPy的数组计算能力扩展到GPU,并加入了自动微分功能,让构建和训练神经网络变得简单直观。 为什么重要 GPU加速:比CPU快10-100倍的矩…

法式基因音响品牌SK(SINGKING AUDIO)如何以硬核科技重塑专业音频版图

在专业音响的竞技场,当多数品牌还在功率参数上缠斗时,一个流淌着法兰西血液的品牌——SK(SINGKING AUDIO),早已构建起令人仰望的技术巅峰。它完美诠释了真正的声学艺术:不是技术的炫耀,而是让尖…

ZooKeeper学习专栏(五):Java客户端开发(原生API)详解

文章目录前言一、核心类解析1.1 ZooKeeper类 - 连接管理核心1.2 Watcher接口 - 事件处理核心二、原生API实践2.1 创建会话(连接管理)2.2 创建节点(支持多种类型)2.3 获取节点数据和状态信息2.4 修改节点数据(版本控制&…

卸油管链接检测误报率↓76%:陌讯多模态融合算法实战解析

原创声明本文为原创技术解析,核心技术参数与架构设计引用自《陌讯技术白皮书》,禁止未经授权的转载与商用。一、行业痛点:卸油管链接检测的三大技术瓶颈在石化仓储与运输场景中,卸油管链接的密封性检测是保障安全生产的关键环节。…

MongoDB用户认证authSource

文章目录authSource遇到的问题authSource MongoDB用户认证逻辑与以往我认知的关系型数据库逻辑不太一样,多了一层用户与数据库关系的绑定。 在建立用户时,需要先指定数据库,则存在一个概念:用户归属于数据库。额外,依…

插件升级:Chat/Builder 合并,支持自定义 Agent、MCP、Rules

TRAE 插件全新升级,Chat、Builder 合并,支持自定义智能体、MCP 及自定义规则,体验对齐 IDE,现已上线 JetBrains 和 VSCode。 1. Chat/Builder 合并,一个对话框即可智能协作 在 TRAE 插件的 Chat 对话框中&#xff0…

【历史人物】【王安石】简历与生平

目录 一、王安石个人简历 二、个人主要经历 三、个人成就及影响 1、散文 2、诗歌 3、词 四、经典评价摘录 一、王安石个人简历 基本信息‌ 姓名:王安石,字介甫,号半山。小名獾郎 性别:男 年龄:1021年-1086年…

Codeforces Round 1040 (Div. 2) A - D题详细题解

本文为Codeforces Round 1040 (Div. 2) A - D题的详细题解, 觉得有帮助或者写的不错可以点个赞! 目录 题目A: 题目大意: 解题思路: 代码(C): 题目B: 题目大意: 解题思路: 代码(C): 题目C: 题目大意: 解题思路: 代码(C): 题目D: 题目大意: 解题思路:…

数据结构 之 【排序】(计数排序)

目录 1.计数排序的思想 2.计数排序图解 3.计数排序代码逻辑 3.1求原数组最大最小值及计数数组的创建 3.2计数 3.3覆盖写 3.4释放资源 4.计数排序的注意事项 5.计数排序的时间复杂度与空间复杂度 以升序为例 1.计数排序的思想 前面我们学习的快排、归并排序、希尔排序.…

Ascend CANN/ACL API 模型部署加速最佳实践

1. 模型输入相关问题 图像尺寸信息 模型输入尺寸由原始模型决定,在转换时固定 图像尺寸信息是模型固有属性,不是转换时添加的 对于使用动态尺寸,可以在推理时自动根据当前的输入尺寸推导输出尺寸。 输入格式(NCHW/NHWC) --input_format 不同框架默认格式不同: Caffe: 支持…

QT信号和槽怎么传输自己定义的数据结构

在 Qt 中,信号(Signal)和槽(Slot)机制默认支持许多内置类型(如 int、QString、QList 等),但如果要传输 自定义数据结构(如结构体、类对象),需要额…

借助于llm将pdf转化为md文本

pdf转化为md格式后,意味着非结构化文本转为结构化文本,能清晰定位大标题、子标题,图表。 方便后续处理,因为llamaindex和langchain能更有效切分md类文本,避免信息丢失。 1)读取pdf为txt 读取pdf&#xf…

设计模式:中介者模式 Mediator

目录前言问题解决方案结构代码前言 中介者是一种行为设计模式,能让你减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互,迫使它们通过一个中介者对象进行合作。 问题 假如你有一个创建和修改客户资料的对话框, 它由各种控件…

计算机基础速通--数据结构·线性表应用

如有问题大概率是我的理解比较片面,欢迎评论区或者私信指正。 考察线性表,核心围绕其存储结构特性、核心操作实现、场景应用选型三大维度,重点检验对基础概念的理解、代码实现能力及问题分析能力,通常会结合算法设计、复杂度分析和…