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

WHAT - CSS 伪元素

目录

  • CSS 伪元素(Pseudo-elements)
  • 常见的 CSS 伪元素
  • 1. ::before 和 ::after
    • 特点
    • 示例
  • 2. ::first-letter 和 ::first-line
    • 特点
    • 示例
  • 3. ::selection
    • 作用
    • 示例
  • 4. ::placeholder
    • 作用
    • 示例
  • 伪元素 vs 伪类
  • 总结

CSS 伪元素(Pseudo-elements)

CSS 伪元素(Pseudo-elements)用于选中特定部分的元素,或创建额外的虚拟元素,以便应用样式。

伪元素以 :: 开头。

常见的 CSS 伪元素

伪元素作用
::before在元素的前面插入内容
::after在元素的后面插入内容
::first-letter选中元素的第一个字母
::first-line选中元素的第一行文本
::selection选中用户高亮(选中)的文本
::placeholder选中 inputtextarea占位文本

1. ::before 和 ::after

::before::after 允许在元素前后插入内容,常用于装饰、图标、标签等。

特点

  • 必须搭配 content 属性使用。
  • content 可以是文本、图片(url())、空字符串(用于装饰)。
/* 在 <button> 前面添加图标 */
button::before {
  content: "🔥 ";
  font-size: 18px;
}

/* 在 <button> 后面添加箭头 */
button::after {
  content: " ➜";
  font-size: 18px;
}

示例

<button>Click me</button>

渲染效果🔥 Click me ➜

2. ::first-letter 和 ::first-line

特点

  • ::first-letter 仅影响第一个字母
  • ::first-line 仅影响第一行文本,受文本换行影响。
/* 让段落首字母变大并加粗 */
p::first-letter {
  font-size: 24px;
  font-weight: bold;
  color: red;
}

/* 让段落的第一行文本变蓝色 */
p::first-line {
  color: blue;
}

示例

<p>Welcome to the world of CSS! This is a test paragraph to demonstrate the first-letter and first-line pseudo-elements.</p>

渲染效果:第一行变蓝色,首字母变红色+加粗。

3. ::selection

作用

  • 允许自定义用户选中的文本的样式。
/* 让选中的文本变为橙色背景,白色文字 */
::selection {
  background-color: orange;
  color: white;
}

示例

<p>Try selecting this text!</p>

效果:用户选中文本后,背景变橙色,文字变白色

4. ::placeholder

作用

  • 用于自定义 <input><textarea> 占位符文本的样式。
input::placeholder {
  color: gray;
  font-style: italic;
  opacity: 0.8;
}

示例

<input type="text" placeholder="Enter your name">

效果:占位符变灰色 + 斜体。

伪元素 vs 伪类

特性伪类(Pseudo-class)伪元素(Pseudo-element)
语法: 开头:: 开头
作用选中已有状态的元素选中元素的特定部分或创建新内容
示例:hover, :nth-child(n)::before, ::after
影响影响整个元素仅影响部分内容或额外内容

总结

伪元素:

  1. ::before::after 用于添加装饰内容,必须有 content 属性。
  2. ::first-letter::first-line 用于样式化文本的部分内容。
  3. ::selection 可以自定义选中文本的颜色和背景。
  4. ::placeholder 控制输入框的占位符样式。

伪类和伪元素可以结合使用,例如:

button:hover::after {
  content: " ✅";
  color: green;
}
http://www.dtcms.com/a/112444.html

相关文章:

  • 数字孪生技术之争:UE、Unity还是飞渡DTS数字孪生平台?
  • uniapp实现的简约美观个人中心页面(仿小红书)
  • Qt 事件系统负载测试:深入理解 Qt 事件处理机制
  • Mysql 中的索引
  • 文件或目录损坏且无法读取:数据恢复的实战指南
  • Mysql 分库分表 vs 分区
  • 每天认识一个设计模式-外观模式:化繁为简的接口魔法
  • 【Java】List列表和数组有什么区别?应用场景有哪些?
  • 免费远程软件实现手机操控电脑的新手教程来了
  • 【centos】经常使用的脚本
  • 并发上传及 JS 的单线程特性
  • Scala总结(四)
  • 基于SpringBoot的水产养殖系统【附源码】
  • 双轴注意力+多分辨率成像:TIMEMIXER++在时序建模领域再创佳绩
  • ffmpeg 使用不同编码器编码hevc的速度
  • 睡不着锻炼贴士补充
  • AI时代下的代理IP新机遇:解锁数据、安全与效率的隐形密码
  • 哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义下载方法
  • 【力扣hot100题】(052)课程表
  • 零基础快速部署网站:使用宝塔面板一键安装 LNMP/LAMP 环境实战教程
  • 从零用java实现 小红书 springboot vue uniapp (11)集成AI聊天机器人
  • WPF 登录页面
  • 基于 SpringBoot 的社区维修平台
  • SQL Server安装后 Reporting Services 配置失败
  • Linux终端命令学习笔记(一)
  • 【含文档+PPT+源码】基于SpringBoot+Vue旅游管理网站
  • Geek Uninstaller 卸载工具-小巧便捷高效 Windows中文版
  • Python爬虫第1节-HTTP基本原理
  • python连接PostgreSQL 数据库操作类优化
  • Pycharm v2024.3.4 Windows Python开发工具