伪元素::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 结构的情况下,灵活地添加装饰性内容和其他元素。

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

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

相关文章

【简洁明了】调节大模型的prompt的方法【带案例】

简明调节大模型的prompt的方法【简洁明了带案例】 1. 明确任务目标2. 提供上下文3. 指定格式4. 限制输出长度5. 使用示例6. 逐步引导7. 提供反面例子8. 使用CoT思维链9. 反复试验和调整方法九解释&#xff1a;乔哈里窗检视 最后 因为网上给出的调节prompt都 过于详细&#xff…

用 WireShark 抓住 TCP

Wireshark 是帮助我们分析网络请求的利器&#xff0c;建议每个同学都装一个。我们先用 Wireshark 抓取一个完整的连接建立、发送数据、断开连接的过程。 简单的介绍一下操作流程。 1、首先打开 Wireshark&#xff0c;在欢迎界面会列出当前机器上的所有网口、虚机网口等可以抓取…

网络通信介绍

一、 简介 网络通信&#xff0c;简而言之&#xff0c;就是通过各种物理链路和协议&#xff0c;实现不同地理位置的计算机或其他电子设备之间信息交换的过程。这些信息可以是文本、图像、音频、视频等多种格式&#xff0c;通过网络传输至目标设备&#xff0c;从而实现远程通信、…

怎样减少视频的容量 怎样减少视频内存保持清晰度

在数字媒体时代&#xff0c;视频内容已经成为人们日常交流和信息传递的重要方式。然而&#xff0c;视频往往占用大量存储空间&#xff0c;给我们的设备带来不小的负担。如何在不损失视频质量的前提下&#xff0c;减少视频文件的大小呢&#xff1f;本文将为你揭秘几个实用的技巧…

Qt 使用Installer Framework制作安装包

Qt 使用Installer Framework制作安装包 引言一、下载安装 Qt Installer Framework二、简单使用2.1 创建目录结构 (文件夹结构)2.2 制作程序压缩包2.3 制作程序安装包 引言 Qt Installer Framework (安装程序框架)是一个强大的工具集&#xff0c;用于创建自定义的在线和离线安装…

探索 TransactionSynchronizationManager.afterCommit 的原理及使用

在日常的企业级开发中&#xff0c;我们经常需要在事务提交之后执行一些操作&#xff0c;例如记录日志、发送通知等。Spring 提供了一个方便的机制来实现这个需求&#xff0c;那就是 TransactionSynchronizationManager.afterCommit。本文将详细探讨 TransactionSynchronization…

【开发指南】HTML和JS编写多用户VR应用程序的框架

1.概述 Networked-Aframe 的工作原理是将实体及其组件同步到连接的用户。要连接到房间&#xff0c;您需要将networked-scene组件添加到a-scene元素。对于要同步的实体&#xff0c;请向其添加networked组件。默认情况下&#xff0c;position和rotation组件是同步的&#xff0c;…

同三维T80004解码器视频使用操作说明书:高清HDMI解码器,高清SDI解码器,4K超清HDMI解码器,双路4K超高清解码器

同三维T80004解码器视频使用操作说明书&#xff1a;高清HDMI解码器&#xff0c;高清SDI解码器&#xff0c;4K超清HDMI解码器&#xff0c;双路4K超高清解码器 同三维T80004解码器系列视频使用操作说明书&#xff1a;高清HDMI解码器&#xff0c;高清SDI解码器&#xff0c;4K超清H…

未来的社交标杆:如何通过AI让Facebook更加智能化?

在当今信息爆炸的时代&#xff0c;社交媒体平台的智能化已成为提高用户体验和互动质量的关键因素。Facebook&#xff0c;作为全球最大的社交平台之一&#xff0c;通过人工智能&#xff08;AI&#xff09;的广泛应用&#xff0c;正不断推进其智能化进程。本文将探讨Facebook如何…

CAS的原理

CAS&#xff08;Compare-And-Swap 或 Compare-And-Set&#xff09;是一种用于实现并发编程中无锁&#xff08;lock-free&#xff09;数据结构的原子操作。CAS 操作比较内存中的某个位置的当前值是否等于预期值&#xff0c;如果相等&#xff0c;则将其更新为新的值&#xff0c;否…

代码随想录学习 54day 图论 from代码随想录

图论总结篇 从深搜广搜 到并查集&#xff0c;从最小生成树到拓扑排序&#xff0c; 最后是最短路算法系列。至此算上本篇&#xff0c;一共30篇文章&#xff0c;图论之旅就在此收官了。在0098.所有可达路径 &#xff0c;我们接触了两种图的存储方式&#xff0c;邻接表和邻接矩阵…

B树(B-Tree)数据结构

1. 什么是B树&#xff1f; B树&#xff08;B-Tree&#xff09;是一种多路搜索树&#xff0c;用于存储和检索大量数据。它是自适应的&#xff0c;适用于各种存储设备和各种数据量。B树的特点是高效的搜索、插入和删除操作&#xff0c;且可以在各种情况下保持树的平衡。 2. B树…

昇思25天学习打卡营第16天 | Vision Transformer图像分类

昇思25天学习打卡营第16天 | Vision Transformer图像分类 文章目录 昇思25天学习打卡营第16天 | Vision Transformer图像分类Vision Transform&#xff08;ViT&#xff09;模型TransformerAttention模块Encoder模块 ViT模型输入 模型构建Multi-Head Attention模块Encoder模块Pa…

工业三防平板助力工厂生产数据实时管理

在当今高度数字化和智能化的工业生产环境中&#xff0c;工业三防平板正逐渐成为工厂实现生产数据实时管理的得力助手。这种创新的技术设备不仅能够在恶劣的工业环境中稳定运行&#xff0c;还为工厂的生产流程优化、效率提升和质量控制带来了前所未有的机遇。 工业生产场景通常充…

机器学习——数据预处理和特征工程(sklearn)

目录 一、数据挖掘流程 1. 获取数据 2. 数据预处理 3. 特征工程 4. 建模&#xff0c;测试模型并预测出结果 5. 验证模型效果 二、sklearn中的相关包 1.sklearn.preprocessing 2.sklearn.Impute 3.sklearn.feature_selection 4.sklearn.decomposition 三、数据预处理…

【网络安全】PostMessage:分析JS实现XSS

未经许可&#xff0c;不得转载。 文章目录 前言示例正文 前言 PostMessage是一个用于在网页间安全地发送消息的浏览器 API。它允许不同的窗口&#xff08;例如&#xff0c;来自同一域名下的不同页面或者不同域名下的跨域页面&#xff09;进行通信&#xff0c;而无需通过服务器…

【Arduino IDE】安装及开发环境、ESP32库

一、Arduino IDE下载 二、Arduino IDE安装 三、ESP32库 四、Arduino-ESP32库配置 五、新建ESP32-S3N15R8工程文件 乐鑫官网 Arduino官方下载地址 Arduino官方社区 Arduino中文社区 一、Arduino IDE下载 ESP-IDF、MicroPython和Arduino是三种不同的开发框架&#xff0c;各自适…

定制开发AI智能名片商城微信小程序在私域流量池构建中的应用与策略

摘要 在数字经济蓬勃发展的今天&#xff0c;私域流量已成为企业竞争的新战场。定制开发AI智能名片商城微信小程序&#xff0c;作为私域流量池构建的创新工具&#xff0c;正以其独特的优势助力企业实现用户资源的深度挖掘与高效转化。本文深入探讨了定制开发AI智能名片商城微信…

.NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别

简述 在软件开发的宇宙中&#xff0c;.NET是一个不断扩展的星系&#xff0c;每个版本都像是一颗独特的星球&#xff0c;拥有自己的特性和环境。作为技术经理&#xff0c;站在选择的十字路口&#xff0c;您需要一张详尽的星图来导航。本文将作为您的向导&#xff0c;带您穿越从.…

AIoTedge智能物联网边缘计算平台:引领未来智能边缘技术

引言 随着物联网技术的飞速发展&#xff0c;我们正步入一个万物互联的时代。AIoTedge智能物联网边缘计算平台&#xff0c;以其创新的边云协同架构&#xff0c;为智能设备和系统提供了强大的数据处理和智能决策能力&#xff0c;开启了智能物联网的新篇章。 智能边缘计算平台的核…