css 想给 svg 设置颜色怎么办_fill 与 stroke 属性-css教程

fill 和 stroke 是 SVG 原生颜色属性,优先级高于 CSS;内联 SVG 才能用 CSS 类控制,需清除内联属性并写全路径选择器;currentColor 可使颜色随父元素文字色动态变化。

直接用 fill 和 stroke 控制 SVG 颜色最可靠

SVG 本身不是图片,而是可编程的矢量标记语言,fill 和 stroke 是它的原生属性,优先级高于 CSS 的 color 或 background-color。如果你发现 CSS 设置没生效,大概率是 SVG 元素自带了内联 fill/stroke,或者被更具体的样式覆盖了。

  • fill 控制图形内部填充色(如 、、 的实心部分)
  • stroke 控制描边颜色(需同时设 stroke-width 才可见)
  • 对 或 ,fill 相当于文字颜色,stroke 可加文字描边
  • 支持所有 CSS 颜色值:#fff、rgb(255,0,0)、var(--primary)、甚至 url(#gradient)

内联 SVG 中用 CSS 类控制 fill 和 stroke

把 SVG 写在 HTML 里(即内联 SVG),才能用 CSS 类精准控制。外部 SVG 文件或 方式无法用 CSS 操作其内部元素。

  • 必须去掉 SVG 标签里的内联 fill/stroke 属性,否则会覆盖 CSS
  • CSS 选择器要写全路径,比如 .icon path、.icon circle,不能只写 .icon
  • 若 SVG 含 引用符号(),需确保引用目标也未锁定颜色
.icon path {
  fill: currentColor;
}
.icon circle {
  stroke: #333;
  stroke-width: 2;
}

用 currentColor 让 SVG 颜色跟随文字色

这是最灵活的做法:把 SVG 的 fill 或 stroke 设为 currentColor,它会自动取父元素的 color 值。按钮、图标按钮、导航项都适合这样写。

  • 适用于内联 SVG,不适用于 或 background-image
  • 如果父元素没设 color,会回退到浏览器默认(通常是黑色)
  • 可配合伪类使用:.btn:hover svg { color: #007bff; },再让 SVG 内部用 currentColor
  • 注意:某些 SVG 导出工具(如 Figma 导出)默认给每个 path 加了 fill="#000",得手动删掉

fill 和 stroke 在不同 SVG 使用方式下的限制

不是所有 SVG 加载方式都支持 CSS 控制颜色。搞错加载方式,再写对 CSS 也没用。

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » css 想给 svg 设置颜色怎么办_fill 与 stroke 属性-css教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4027555+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4027555+
  • 本周更新: 0+
  • 最后更新: 2026-03-16