28. CSS 的伪元素是什么?有什么用

总结

内容说明
伪元素定义用于选择元素的特定部分或虚拟部分,添加样式或内容
常见伪元素::before::after::first-line::first-letter::selection
主要用途插入内容、美化样式、清除浮动、增强交互
注意事项不是真实 DOM,不能通过 JS 操作;必须使用 [content](file://d:\Code\Gitee\video-project\node\routes\comment\validators.js#L3-L7) 属性
推荐场景按钮装饰、段落美化、表单优化、文本选中样式等

一、什么是伪元素?

CSS 伪元素是用于选择元素的特定部分或虚拟部分的语法,用于向某些选择器添加特殊效果

伪元素并不是真正的 DOM 元素,而是通过 CSS 在元素的特定位置插入虚拟内容或样式。


二、伪元素语法

伪元素使用双冒号 :: 表示法(部分旧写法使用单冒号 :,如 :before):

selector::pseudo-element {
  property: value;
}

三、常见的伪元素

伪元素描述示例
::before在元素内容前插入内容添加图标、装饰性内容
::after在元素内容后插入内容清除浮动、添加提示
::first-line选择元素的第一行文本段落首行样式控制
::first-letter选择元素的第一个字符首字下沉效果
::selection选择用户选中的文本部分自定义文本选中样式
::placeholder输入框中的占位符文本自定义输入框提示样式
::marker列表项的标记(如 <ul> 的点)自定义列表项符号样式
::file-selector-button<input type="file"> 的按钮部分自定义上传按钮样式

四、常用伪元素详解

1. ::before::after

常用于插入装饰性内容或辅助布局。

.box::before {
  content: "★";
  color: gold;
}

⚠️ 必须设置 [content](file://d:\Code\Gitee\video-project\node\routes\comment\validators.js#L3-L7) 属性,否则伪元素不会显示。

2. ::first-line
p::first-line {
  font-weight: bold;
  color: red;
}

适用于段落、文章类文本样式优化。

3. ::first-letter
p::first-letter {
  font-size: 2em;
  float: left;
}

实现“首字下沉”效果,常用于杂志、书籍类页面。

4. ::selection
::selection {
  background-color: yellow;
  color: black;
}

自定义用户选中文本时的背景和文字颜色。

5. ::placeholder
input::placeholder {
  color: #999;
  font-style: italic;
}

美化输入框的占位符提示。


五、伪元素的实际应用场景

场景伪元素说明
添加装饰图标::before / ::after如按钮前缀图标、装饰点
清除浮动::after通过插入空元素并设置 clear: both
美化段落::first-line / ::first-letter提升文章可读性和美观性
自定义选中样式::selection增强用户交互体验
表单美化::placeholder / ::file-selector-button统一 UI 风格

六、注意事项

  • 伪元素不能通过 JavaScript 获取或操作(不是真实 DOM 节点)。
  • ::before::after 必须配合 [content](file://d:\Code\Gitee\video-project\node\routes\comment\validators.js#L3-L7) 属性使用。
  • 伪元素可以配合 attr() 函数动态插入属性值:
a::after {
  content: " (" attr(href) ")";
}
  • 伪元素支持所有 CSS 属性,如 colorfont-sizebackground 等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yqcoder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值