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