最稳妥方式是用@import或引入Font Awesome,注意v6与v5类名前缀(fa-solid/fa-brands vs fas/fab)及图标名去fa-前缀差异,避免混用导致图标不显示。

直接用 @import 或 引入 Font Awesome 是最稳妥的方式,CDN 最省事,但要注意版本号和图标类名是否匹配——v6 和 v5 的类名前缀、语法完全不同,混用会图标不显示。
确认你用的是 Font Awesome v6 还是 v5
v6 默认使用 fa-solid / fa-brands 等新前缀,且图标名去掉了 fa- 前缀(比如 fa-user → user);v5 仍用 fa fa-user。查文档时务必看右上角版本切换按钮,别按 v5 教程写 v6 代码。
- v6 引入地址示例:
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css - v5 引入地址示例:
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css -
本地部署时,v6 的 CSS 文件里已包含 WebFont 加载逻辑,无需额外配
@font-face
HTML 中插入图标的两种写法(v6 推荐用 )
Font Awesome 官方推荐用 标签 + 多个 class 组合,语义虽弱但兼容性好、加载快; 写法更可控(可改色、缩放),但需额外引入 JS 或用 @fortawesome/react-fontawesome(React 场景)。
-
fa-solid对应实心图标(fas是 v5 别名) -
fa-brands专用于品牌图标(fab是 v5 别名) - 图标名必须拼写完全一致,比如
envelope不是email,查官网搜索框确认
图标不显示?优先检查这三件事
90% 的“图标变方块”问题都出在这几个地方,比改 CSS 优先级更高:
立即学习“前端免费学习笔记(深入)”;
- 网络请求失败:打开浏览器 DevTools → Network 标签,过滤
css或woff2,看 Font Awesome 的 CSS 或字体文件是否 404 或被拦截 - 类名拼错或版本错位:比如在 v6 项目里写了
fa fa-user,或把fa-solid写成fa-solid-900(后者是 v6 的字体权重类,不是图标类) - CSS 优先级覆盖:某些重置样式(如
i { font-family: sans-serif; })会干掉 Font Awesome 的字体声明,加!important仅作临时验证,根治要提高选择器特异性
Font Awesome 的核心其实是 CSS + WebFont,不是魔法。只要路径对、类名对、字体没被覆盖,图标就一定出来。v6 的图标库更大,但体积也更大,生产环境建议按需引入 Pro 版或用 SVG Sprite 方式拆分。










