news 2026/5/27 4:36:11

CSS伪类及伪元素:一篇搞懂

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CSS伪类及伪元素:一篇搞懂

文章目录

      • 一、 伪类(Pseudo-classes)
    • 1.链接伪类
    • 2.用户行为伪类
    • 3.结构伪类选择器
    • 4.表单伪类
      • 二、伪元素(Pseudo-elements)
      • 三、核心区别

一、 伪类(Pseudo-classes)

伪类用于选择处于特定状态的元素,例如用户交互或文档结构中的位置。它们以冒号(:)开头。

1.链接伪类

  • a:link:为访问链接的默认样式。
  • a:visited:已访问链接的样式。
  • a:hover:鼠标悬停在链接上时的反馈。
  • a:active:连接被点击时的瞬时状态。

代码示例

/* 未访问链接的默认样式 */a:link{color:blue;text-decoration:none;}/* 已访问链接的样式 */a:visited{color:purple;}/* 鼠标悬停时的反馈 */a:hover{color:red;text-decoration:underline;}/* 点击瞬间的状态 */a:active{color:green;}

2.用户行为伪类

  • :hover:鼠标经过元素。
  • :focus:获得焦点的元素(表单)当用户点击或通过键盘(如Tab键)导航到元素时触发。
<!DOCTYPEhtml><html><head><style>input:focus{border:2px solid #ff6b6b;background-color:#fff5f5;}button:focus{outline:3px dashed #20bf6b;}</style></head><body><inputtype="text"placeholder="点击获取焦点"><button>测试按钮</button></body></html>

3.结构伪类选择器

  • :first-child:一组兄弟元素中的第一个元素。
  • :last-child:一组兄弟元素中的最后一个元素。
  • :nth-child(n):一组兄弟元素列表中第n个元素。

n 的取值可以是:

1.数字。从1开始
2.关键字。odd 奇数 even 偶数
3.公式。
:nth-child(3n) ; 3的倍数,第3.6.9…个元素:nth-child(3n)
:nth-child(n+2);第2个以及以后的元素
:nth-child(-n+3);前面3个元素
注意公式的n取值从0开始计算

<style>table{width:500px;height:300px;border-collapse:collapse;text-align:center;background:#ccc;}table tr:first-child{background-color:#7ed6ef;}table tr:nth-child(odd){background-color:#fffcfc;}table tr:hover{background-color:#e9abab;}</style><body><tableborder="1"><tr><th>姓名</th><th>数据</th><th>日期</th></tr><tr><td>张三</td><td>2</td><td>2003-9</td></tr><tr><td>李四</td><td>2</td><td>2003-8</td></tr><tr><td>王五</td><td>2</td><td>2003-7</td></tr></table></body></html>

4.表单伪类

  • :disabled:表单禁用。
  • :checked:选中状态,表单复选按钮。
/*禁用状态的输入框会显示灰色背景和浅色边框。*/<style>input:disabled{background-color:#f0f0f0;border:1px solid #ccc;}</style></head><body><inputtype="text"disabledplaceholder="禁用的输入框"></body></html>
/* 当复选框被选中时,关联的标签文本会变为绿色并加粗。*/<style>input:checked + label{color:green;font-weight:bold;}</style></head><body><inputtype="checkbox"id="agree"><labelfor="agree">我同意条款</label></body></html>

二、伪元素(Pseudo-elements)

伪元素用于选择元素的特定部分(如首行或内容前后),而非元素本身。它们以双冒号(::)开头(CSS3规范,但单冒号仍兼容)。

常见伪元素示例

  • ::before:在元素内容前插入生成内容。
  • ::after:在元素内容后插入生成内容。
  • ::first-line:选择首行。
  • ::first-letter:第一个字母。
  • ::placeholder:选择input或者textarea。
<style>div{height:100px;width:500px;}div::before{content:"开始"color:red;}div::before{content:"结束"color:red;}</style></head><body><div>文字</div></body></html>

注意事项
before和after是插入的伪元素,特性类似内联元素。
content属性是必须,不能省略,没有内容空引号即可。
后期非常非常常用。比如小图标、各种装饰效果。

三、核心区别

  • 作用对象:伪类针对元素状态,伪元素针对元素的部分内容。
  • 语法:伪类用单冒号(:),伪元素推荐用双冒号(::)。
  • 内容生成:伪元素常与content属性配合生成虚拟内容。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/25 20:15:58

计算机网络基础

网络定义 多台设备通过连接介质&#xff0c;能互相传数据&#xff0c;共享资源的集合 协议&#xff1a;设备之间的沟通规则 拓扑结构 网络设备的物理连接方式 星型&#xff1a;就是有一个中间的设备转一下 总线型&#xff1a;学校机房那种所有设备连着一台设备 环型&#xff1a…

作者头像 李华
网站建设 2026/5/26 9:26:21

AI智能体(Agent)开发全攻略:概念、设计到安全运行,程序员必学

本文详解AI智能体的本质区别、三大核心特征及落地路径&#xff0c;涵盖模型选型、工具定义、指令配置等关键组件&#xff0c;解析单智能体与多智能体编排模式&#xff0c;并强调安全护栏体系的重要性&#xff0c;为开发者提供从0到1构建智能体的完整路线图&#xff0c;助力抢占…

作者头像 李华
网站建设 2026/5/25 18:58:17

LLM RAG开发进阶:多查询检索技术详解与实战代码

本文详细介绍了LLM应用中RAG开发的三个关键步骤和六个优化阶段&#xff0c;重点阐述了多查询检索策略如何提升检索准确性。通过生成多个角度的子问题进行检索并合并结果&#xff0c;有效克服传统相似性搜索的局限。文章提供了LangChain中MultiQueryRetriever的具体实现代码和优…

作者头像 李华
网站建设 2026/5/25 12:55:39

广东省考备考三要素(喻明公考)

材料结构化面试备考要注意的方面有很多&#xff0c;但是抓住关键才能有效备考。在实际的学习中&#xff0c;喻明公考提醒各位考生有三个备考的关键要素需要深入把握。一、学好普通结构化材料结构化归根到底还是在普通结构化的基础上进行的创新&#xff0c;背景材料对作答有指导…

作者头像 李华
网站建设 2026/5/26 6:12:21

好写作AI|学术萌新救星:你的“论文私教”如何把知识喂到嘴边

写论文像在迷宫里裸奔&#xff1f;别慌&#xff01;你的“学术导航仪”已上线各位刚踏入学术圈的萌新们&#xff0c;是不是觉得论文写作就像突然被扔进深海却没人教游泳&#xff1f;面对“文献综述”、“研究方法”这些专业术语一脸懵&#xff1f;别怕&#xff01;今天给你们安…

作者头像 李华
网站建设 2026/5/25 21:05:19

【紧急预警】环境指标悄然变化!用R语言快速识别趋势拐点的方法

第一章&#xff1a;环境监测的 R 语言趋势检验在环境科学领域&#xff0c;长期监测数据的趋势分析对于评估气候变化、污染水平演变及生态响应至关重要。R 语言凭借其强大的统计建模与可视化能力&#xff0c;成为执行环境趋势检验的首选工具。常用方法包括Mann-Kendall非参数趋势…

作者头像 李华