求助:FontAwesome的fas类在CSS中失效,改用svg-inline--fa类生效的原因
Font Awesome图标样式不生效的原因与解决
核心原因:你使用了Font Awesome的SVG加载模式
Font Awesome新版默认采用SVG核心加载方式,它会通过内置JavaScript把你写的传统<i>标签图标自动替换成<svg>元素渲染:
- 你原本写的
<i class="fas fa-user"></i>会被JS处理后隐藏(浏览器中显示灰色未使用状态) - 页面实际渲染的是生成的SVG元素:
<svg class="svg-inline--fa fa-user" ...>
这就是.menu .fas选择器失效的原因——它选中的是已被隐藏的<i>标签,而非实际显示的SVG元素。
两种可行的样式写法
- 直接针对生成的SVG类名写样式
.menu .svg-inline--fa { width: 2rem; }
这是你已经测试有效的写法,直接选中实际渲染的SVG元素。
- 利用保留的原始图标类名
生成的SVG元素会保留你原本写的fa-user类名,用这个类写样式,即使后续Font Awesome加载模式变化,选择器依然有效:
.menu .fa-user { width: 2rem; }
内容的提问来源于stack exchange,提问作者joseldsm
相关产品推荐
相关产品推荐

