0

0

css 伪类与字体图标_通过 :before 在文本前添加字体图标

P粉602998670

P粉602998670

发布时间:2026-01-24 13:46:02

|

769人浏览过

|

来源于php中文网

原创

最常见原因是未设置 content 或未声明正确的 font-family;伪元素需 content: "" 才渲染,font-family 必须与 @font-face 严格一致,避免父元素 font-size: 0 或 line-height: 0 导致图标不可见。

css 伪类与字体图标_通过 :before 在文本前添加字体图标

为什么 :before 添加字体图标后图标不显示

最常见原因是没设置 content,或没声明 font-family 指向图标字体(如 "iconfont")。伪元素默认是 inline,若父元素设置了 font-size: 0line-height: 0,图标也会被“压扁”不可见。

  • :before 必须带 content: ""(哪怕为空字符串),否则完全不渲染
  • 图标字体名必须和 @font-face 中定义的 font-family 值严格一致,区分大小写
  • 避免在父元素上设 font-size: 0;如需控制尺寸,单独给伪元素设 font-size
  • 确保图标字体文件已加载完成,可加 font-display: block 防 FOIT

如何用 :before 插入具体图标字符(如 Font Awesome 或自定义 iconfont)

以 iconfont.cn 下载的字体为例,需先引入 CSS,并确认图标 Unicode 编码(如 \e601)。注意:Unicode 值必须用反斜杠转义,且前面不能漏掉引号。

.btn-home::before {
  content: "\e601";
  font-family: "iconfont";
  font-size: 14px;
  margin-right: 6px;
}
  • Unicode 值来自图标详情页的「Unicode」字段,不是 HTML 实体(如
  • 若用 Font Awesome 5+,推荐用 SVG 方式;如坚持用 Web Font,需用 fa 字体族名 + 对应 Unicode(查官方 CSS 文件)
  • margin-rightpadding 更安全——避免影响文本行高或触发换行

:before 和内联 SVG 哪个更适合图标前置

纯 CSS :before 轻量、易复用,但无法动态变色(除非用 currentColor)、不支持多色图标、缩放时可能模糊。SVG 可直接设 fill、响应式缩放无损,但体积略大、CSS 控制粒度更细。

一帧秒创
一帧秒创

基于秒创AIGC引擎的AI内容生成平台,图文转视频,无需剪辑,一键成片,零门槛创作视频。

下载
  • 单色小图标、大量复用场景(如菜单项、按钮前缀)→ 优先 :before + 字体图标
  • 需要 hover 变色、动画、或含描边/渐变的图标 → 改用内联 <svg></svg><use></use>
  • 若用 :before,建议配 color: currentColor,让图标随文字色自动同步

兼容性与性能注意点

:before 本身 IE8+ 全支持,但字体图标在旧 Android(≤4.3)或 iOS Safari(≤9)中可能因字体格式(WOFF2)或渲染引擎问题显示为方块。

立即学习前端免费学习笔记(深入)”;

  • 确保提供 .woff 回退格式(@font-face 中按顺序声明,浏览器选第一个支持的)
  • 不要把所有图标塞进一个字体文件再全局加载;按需提取子集(用 iconfont.cn 的「下载代码」→「FontClass / Symbol」方式更可控)
  • 慎用 font-weightfont-style 修改图标——多数图标字体未定义这些变体,可能导致 fallback 到系统字体
字体图标加在文本前这事本身不难,难的是图标能稳定出现在该出现的位置、颜色尺寸可控、且不拖慢首屏。别只盯着 contentfont-family,真正卡住的往往是字体加载时机、父容器的排版约束,还有那个你以为“只是装饰”的 line-height

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

760

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

221

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1566

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

649

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

1228

2024.03.22

php中定义字符串的方式
php中定义字符串的方式

php中定义字符串的方式:单引号;双引号;heredoc语法等等。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

1184

2024.04.29

go语言字符串相关教程
go语言字符串相关教程

本专题整合了go语言字符串相关教程,阅读专题下面的文章了解更多详细内容。

192

2025.07.29

c++字符串相关教程
c++字符串相关教程

本专题整合了c++字符串相关教程,阅读专题下面的文章了解更多详细内容。

131

2025.08.07

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.6万人学习

CSS教程
CSS教程

共754课时 | 42万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号