FontAwesome 怎么在网页中使用:从引入到显示图标的完整步骤
在网页中使用 FontAwesome,核心只有三步:引入它的 CSS 文件、在 HTML 里写对应的图标类名、再用 CSS 调整大小和颜色。它本质上是一套图标字体(webfont)加配套样式表,浏览器把特定字符渲染成图标,所以调用方式和设置文字样式几乎一样。下面按实际操作顺序展开,并说明不同引入方式的取舍和常见故障排查。
一、先理解它是什么,再决定怎么用
FontAwesome 把每个图标做成一个矢量字形,通过 CSS 的 ::before 伪元素把对应字符插入到元素前面。你在页面上写一个 <i> 或 <span>,加上类名,图标就出现了。
它和另外两种常见做法有区别:
| 方式 | 优点 | 局限 |
|---|---|---|
| 图标字体(FontAwesome 经典用法) | 调用简单,改颜色和大小只需 CSS,一套文件覆盖大量图标 | 需要加载字体文件,图标本质是文字,语义偏弱 |
| 直接使用图片(PNG/JPG) | 兼容性直观,所见即所得 | 放大失真,换色要重新导出,请求数多 |
| 内联 SVG | 矢量清晰,可单独控制路径,语义好 | 每个图标代码较长,批量管理成本高 |
如果你需要快速在按钮、导航、列表里加图标,并且希望统一用 CSS 控制样式,字体图标方式最省事。如果对可访问性和精细控制要求高,可以优先考虑 SVG 方案。
二、选择引入方式:CDN 还是本地文件
方式一:通过 CDN 引入(适合快速上手和中小项目)
在 <head> 里加一行样式表链接即可。使用官方或可信的 CDN 地址,例如:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css">
优点是不用下载文件,改版本只改链接;缺点是依赖外部网络,离线环境或内网项目不可用,也可能受 CDN 可用性影响。
方式二:下载后本地引用(适合离线、内网或需要固定版本的项目)
- 从 FontAwesome 官方渠道下载免费版压缩包。
- 解压后把
css和webfonts两个目录一起放进项目静态资源目录,注意保持它们的相对位置不变。 - 在页面中引用本地 CSS:
<link rel="stylesheet" href="/static/fontawesome/css/all.min.css">
关键点是 css 和 webfonts 必须放在同一父级下,因为 CSS 内部用相对路径去加载字体文件。只复制 CSS 而漏掉字体目录,是图标显示成方块或空白的最常见原因。
三、在 HTML 中调用图标
基本写法是给一个行内元素加上图标类名。以免费版为例:
<!-- 实心图标 -->
<i class="fas fa-home"></i>
<!-- 品牌图标 -->
<i class="fab fa-github"></i>
<!-- 用 span 也可以 -->
<span class="fas fa-search"></span>
类名结构可以这样理解:
- 前缀表示图标风格:
fas是实心(Solid),far是常规(Regular),fab是品牌(Brands)。免费版里实心和品牌图标最全,常规风格可用数量有限。 - 第二个类名是具体图标名,如
fa-home、fa-user、fa-search。 - 新版本也支持更简短的写法,但为兼容性考虑,沿用
fas/far/fab前缀更稳妥。
图标本质是文字,所以可以直接放在文字旁边,用空格或外边距控制间距。
四、调整大小、颜色和常用效果
因为图标是字体,控制它和设置文字样式一样:
<!-- 用内联样式快速验证 -->
<i class="fas fa-star" style="color: #f5a623; font-size: 24px;"></i>
更推荐写在 CSS 里统一管理:
.icon {
color: #333;
font-size: 20px;
margin-right: 6px;
vertical-align: middle;
}
<i class="fas fa-check icon"></i>已完成
FontAwesome 还内置了一些尺寸类,例如 fa-lg、fa-2x、fa-3x,以及 fa-fw(固定宽度,适合做列表对齐)、fa-spin(旋转动画)。这些类名可以直接叠加:
<i class="fas fa-spinner fa-spin fa-2x"></i>
如果图标和文字基线对不齐,用 vertical-align: middle 通常能解决大部分情况。
五、图标不显示时的排查顺序
遇到空白方块、方框或什么都不显示,按下面顺序检查:
- CSS 是否加载成功:打开浏览器开发者工具的网络面板,确认
all.min.css返回 200,而不是 404。 - 字体文件路径是否正确:如果 CSS 加载了但图标是方块,多半是
webfonts目录缺失或路径不对。检查 CSS 与字体目录的相对位置。 - 类名是否拼写正确:
fas写成fa、图标名多写或少写字母都会失效。对照官方图标页面复制类名最保险。 - 图标是否存在于当前版本:免费版不包含所有图标,某些专业版图标在免费版里不会显示。
- 是否被其他样式覆盖:某些 CSS 框架会给
i或span设置font-family,可能覆盖图标字体。检查计算样式里的font-family。 - CDN 是否被拦截:部分网络环境会屏蔽外部 CDN,换成本地引用即可验证。
六、给初学者的实践建议
- 先用 CDN 方式跑通一个最小示例,确认图标能显示,再决定是否改为本地引用。
- 项目里统一用一套前缀和命名习惯,避免混用不同版本导致类名冲突。
- 图标是装饰性内容时,可以配合
aria-hidden="true";如果图标承担了唯一含义(比如只有图标的按钮),补上文字标签或aria-label更利于可访问性。 - 需要固定版本时,本地引用比 CDN 更可控,升级时替换整个目录即可。
按以上步骤,从引入样式表到页面上出现图标通常几分钟就能完成。真正容易出问题的环节集中在字体目录路径和类名拼写上,遇到不显示时优先查这两处。