求助:CSS类已应用但无样式生效,editableInput类异常排查
看起来你遇到的是常见的CSS优先级或者Font Awesome图标渲染机制的问题,我来帮你梳理几个最可能的原因和解决办法:
CSS优先级被Font Awesome内置样式覆盖
Font Awesome的默认样式可能用了比你的.editableInput更具体的选择器来设置图标颜色。比如它的内置规则可能是i.fas或者.fas,这些选择器的优先级和你的单一类选择器.editableInput相同甚至更高(元素+类的组合选择器优先级高于单一类选择器)。解决办法:提升你的选择器优先级,比如把选择器改成
.fas.editableInput,这样就能确保你的样式覆盖默认规则:.fas.editableInput { color: #2196f3; }或者如果你不想依赖Font Awesome的类名,也可以用
i.editableInput,同样能提高优先级。你使用的是SVG版本的Font Awesome
如果你用的是SVG模式的Font Awesome(而非传统的Web Font),图标颜色是通过fill属性控制的,而不是color。这时候你的color样式自然不会生效。解决办法:把你的CSS类改成设置
fill属性:.editableInput { fill: #2196f3; }其他自定义CSS规则冲突
检查一下你的CSS文件中有没有其他更靠后加载、或者优先级更高的规则(比如.some-parent-container .fas),这些规则可能无意中覆盖了你的.editableInput样式。可以在Chrome开发者工具的「Elements」面板中查看「Styles」标签,看看color属性有没有被划掉,旁边会显示是哪个规则覆盖了它。快速排查:用!important测试优先级问题
如果你想快速确认是不是优先级的问题,可以临时给样式加上!important(不推荐长期使用,仅用于排查):.editableInput { color: #2196f3 !important; }如果这样生效了,那肯定是优先级的问题,回到第一个方法去解决即可。
内容的提问来源于stack exchange,提问作者Luis Arancibia

