最省事是用CDN引入FontAwesome v6.5.0的all.min.css,注意类名需改为fa-solid fa-user等前缀;npm安装适用于构建项目,避免全量导入;图标勿与Bootstrap按钮class混用;IE11兼容推荐v5字体方案。

直接用CDN是最省事的引入方式
Bootstrap本身不自带FontAwesome,得手动加。最简单就是往HTML的里贴一行CDN链接,比如用v6.5.0稳定版:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">
注意别用font-awesome.min.css这种老路径——那是v5及以前的写法,v6起改用all.min.css或fontawesome.min.css,否则图标不显示。
如果项目已用v5(比如fa fa-user写法),升级到v6后类名会失效,得改成fa-solid fa-user或加fa-regular等前缀。
用npm安装适合Vue/React这类构建项目
Node环境里跑npm install @fortawesome/react-fontawesome @fortawesome/free-solid-svg-icons(React)或对应框架包,再按需导入图标:
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faUser } from '@fortawesome/free-solid-svg-icons';
<FontAwesomeIcon icon={faUser} />
不推荐全量导入@fortawesome/free-all——体积太大,首屏加载明显变慢。
v6默认只含solid风格,要regular或brands,得单独装@fortawesome/free-regular-svg-icons或@fortawesome/free-brands-svg-icons并显式注册。
图标和Bootstrap组件混用时注意class优先级冲突
比如给<button class="btn btn-primary"></button>加图标:<i class="fas fa-download"></i> 下载,没问题;但若写成<button class="btn btn-primary fas fa-download">下载</button>,图标就消失——因为Bootstrap的btn重置了display和font-family,而FontAwesome依赖font-family: "Font Awesome 6 Free"。
正确做法是把图标放在按钮内容里,或用<span></span>包裹,别把FA类直接挂到btn上。
v6的SVG图标方案对IE11不友好
如果还得兼容IE11,别用v6的JS+SVG方案(即@fortawesome/react-fontawesome或svg-with-js包),它依赖Promise和CustomElement,IE原生不支持。
退回到v5的Web Fonts + CSS方案更稳妥:https://use.fontawesome.com/releases/v5.15.4/css/all.css,类名保持fa fa-user不变,也省去注册步骤。
不过v5已停止维护,新项目建议尽早切到v6,并用Babel+polyfill兜底IE需求——但真要保IE,字体方案仍是最快落地的选择。
实际集成时最容易卡在版本错配和类名迁移上,尤其是团队里有人沿用v5文档抄代码,又没检查CDN链接版本号,结果页面一片空白方块。先确认fontawesome.min.css路径和fa-solid这类前缀是否匹配,比调样式快得多。
npm install @fortawesome/react-fontawesome @fortawesome/free-solid-svg-icons(React)或对应框架包,再按需导入图标:
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faUser } from '@fortawesome/free-solid-svg-icons';
<FontAwesomeIcon icon={faUser} />
不推荐全量导入@fortawesome/free-all——体积太大,首屏加载明显变慢。
v6默认只含solid风格,要regular或brands,得单独装@fortawesome/free-regular-svg-icons或@fortawesome/free-brands-svg-icons并显式注册。
图标和Bootstrap组件混用时注意class优先级冲突
比如给<button class="btn btn-primary"></button>加图标:<i class="fas fa-download"></i> 下载,没问题;但若写成<button class="btn btn-primary fas fa-download">下载</button>,图标就消失——因为Bootstrap的btn重置了display和font-family,而FontAwesome依赖font-family: "Font Awesome 6 Free"。
正确做法是把图标放在按钮内容里,或用<span></span>包裹,别把FA类直接挂到btn上。
v6的SVG图标方案对IE11不友好
如果还得兼容IE11,别用v6的JS+SVG方案(即@fortawesome/react-fontawesome或svg-with-js包),它依赖Promise和CustomElement,IE原生不支持。
退回到v5的Web Fonts + CSS方案更稳妥:https://use.fontawesome.com/releases/v5.15.4/css/all.css,类名保持fa fa-user不变,也省去注册步骤。
不过v5已停止维护,新项目建议尽早切到v6,并用Babel+polyfill兜底IE需求——但真要保IE,字体方案仍是最快落地的选择。
实际集成时最容易卡在版本错配和类名迁移上,尤其是团队里有人沿用v5文档抄代码,又没检查CDN链接版本号,结果页面一片空白方块。先确认fontawesome.min.css路径和fa-solid这类前缀是否匹配,比调样式快得多。
@fortawesome/react-fontawesome或svg-with-js包),它依赖Promise和CustomElement,IE原生不支持。
退回到v5的Web Fonts + CSS方案更稳妥:https://use.fontawesome.com/releases/v5.15.4/css/all.css,类名保持fa fa-user不变,也省去注册步骤。
不过v5已停止维护,新项目建议尽早切到v6,并用Babel+polyfill兜底IE需求——但真要保IE,字体方案仍是最快落地的选择。
实际集成时最容易卡在版本错配和类名迁移上,尤其是团队里有人沿用v5文档抄代码,又没检查CDN链接版本号,结果页面一片空白方块。先确认fontawesome.min.css路径和fa-solid这类前缀是否匹配,比调样式快得多。


















