当前位置: 首页 > news >正文

伪元素::before :: after的用法?

::before 和 ::after 是 CSS 伪元素,用于在元素内容的前面或后面插入内容。这些伪元素不会改变文档的实际内容,但可以用来添加装饰性元素或文本。以下是它们的用法和一些常见示例。

基本用法
::before
::before 伪元素用于在元素的内容之前插入内容。

.element::before {content: "Before content";color: red;
}

::after
::after 伪元素用于在元素的内容之后插入内容。

.element::after {content: "After content";color: blue;
}

示例
示例 1:插入文本

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><style>.example::before {content: "Before: ";color: red;}.example::after {content: " :After";color: blue;}</style>
</head>
<body><div class="example">Main content</div>
</body>
</html>

在这个示例中,.example 元素的内容将显示为 “Before: Main content
”。

示例 2:插入图标
你还可以使用伪元素插入图标或其他装饰性内容。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><style>.icon::before {content: url('icon.png');display: inline-block;margin-right: 5px;}.icon::after {content: url('icon.png');display: inline-block;margin-left: 5px;}</style>
</head>
<body><div class="icon">Text with icons</div>
</body>
</html>

在这个示例中,.icon 元素的内容将会在文本前后显示图标 icon.png。

示例 3:清除浮动
::after 伪元素常用于清除浮动。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><style>.clearfix::after {content: "";display: table;clear: both;}.float-left {float: left;width: 50%;}.float-right {float: right;width: 50%;}</style>
</head>
<body><div class="clearfix"><div class="float-left">Left</div><div class="float-right">Right</div></div>
</body>
</html>

在这个示例中,.clearfix 类使用 ::after 伪元素来清除其子元素的浮动。

注意事项
content 属性:伪元素的 content 属性是必需的。如果没有指定 content 属性,伪元素将不会显示。
层叠顺序:伪元素会被认为是元素内容的一部分,因此它们会覆盖元素的背景,但不会覆盖元素的边框。
兼容性:现代浏览器都支持 ::before 和 ::after 伪元素。
通过使用 ::before 和 ::after,你可以在不改变 HTML 结构的情况下,灵活地添加装饰性内容和其他元素。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 微软GraphRAG +本地模型+Gradio 简单测试笔记
  • 【C#】Array和List
  • 深入解析公有IP与私有IP:地址分配与使用限制
  • 智慧农业新纪元:解锁新质生产力,加速产业数字化转型
  • liosam复现
  • 测试面试宝典(六)—— 请回答集成测试和系统测试的区别,以及它们的应用场景主要是什么?
  • 索引堆及其优化
  • Qt模型/视图架构——委托(delegate)
  • 【日常记录】【CSS】display:inline 的样式截断
  • Java基础笔记(面试题)
  • 抖音短视频seo矩阵系统源码(搭建技术开发分享)
  • 前端开发体系+html文件详解
  • live555关于RTSP协议交互流程
  • LabVIEW鼠标悬停在波形图上的曲线来自动显示相应点的坐标
  • 【ffmpeg命令基础】流复制
  • [NodeJS] 关于Buffer
  • 【React系列】如何构建React应用程序
  • CSS实用技巧干货
  • GraphQL学习过程应该是这样的
  • Js基础——数据类型之Null和Undefined
  • js作用域和this的理解
  • NSTimer学习笔记
  • 阿里云Kubernetes容器服务上体验Knative
  • 关于List、List?、ListObject的区别
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 力扣(LeetCode)22
  • 两列自适应布局方案整理
  • 入手阿里云新服务器的部署NODE
  • 删除表内多余的重复数据
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  •  一套莫尔斯电报听写、翻译系统
  • 用 Swift 编写面向协议的视图
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​iOS安全加固方法及实现
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • #NOIP 2014#Day.2 T3 解方程
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #每日一题合集#牛客JZ23-JZ33
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (1)bark-ml
  • (10)STL算法之搜索(二) 二分查找
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (C语言)球球大作战
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (ros//EnvironmentVariables)ros环境变量
  • (二)linux使用docker容器运行mysql
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (一)Java算法:二分查找
  • (一)kafka实战——kafka源码编译启动
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m