鼠标hover时修改SVG的fill属性颜色不生效问题求助
SVG悬停修改颜色无效的解决方法
你的代码失效最常见的原因是CSS选择器优先级不足,或者fill属性被更精确的规则覆盖,可按以下步骤排查解决:
- 调整CSS选择器精度,直接指定SVG内的path元素:
你当前的规则只作用于svg标签,但如果存在其他针对svg path的全局样式,或者path默认继承逻辑被打断的情况,就会失效。修改CSS为如下写法即可:.signup-icon path { fill: #515151; } .signup-icon:hover path { fill: #FFFFFF; } - 检查SVG内部的path标签是否写了内联
fill属性,例如<path fill="#000000" ...>,如果存在直接删掉内联fill属性即可,内联样式的优先级高于外部CSS,会导致你的自定义规则不生效。 - 排查全局样式冲突,检查是否存在更高优先级的样式(比如带
!important的path样式规则)覆盖了你的设置,可通过浏览器开发者工具的元素检查面板,选中path标签查看最终生效的fill属性来源,调整对应规则的优先级即可。 - 测试时可先将hover状态的fill值改为更鲜艳的颜色(例如
#ff0000),避免因为hover颜色和背景色重合导致误以为效果未生效。
内容的提问来源于stack exchange,提问作者Timothy Cohen
相关产品推荐
相关产品推荐

