svg - 使用 css 更改 svg 颜色并加载外部精灵

Posted

技术标签:

【中文标题】svg - 使用 css 更改 svg 颜色并加载外部精灵【英文标题】:svg - change svg color with css and load external sprite 【发布时间】:2017-05-19 06:41:41 【问题描述】:

我这里有一个笨蛋 - https://plnkr.co/edit/yQe0otxwy6GEepITLnJD?p=preview

简单的问题,我正在尝试使用 css 更改 svg sprite 中 svg 的颜色。

我已经尝试过使用 fill 和 currentColor,就像这里解释的那样 - https://css-tricks.com/cascading-svg-fill-color/

第二个问题是当它是本地文件时我可以加载精灵,但当它是外部文件时我似乎无法加载它。 就像第二个不显示的例子一样。

    /* svg
      color: yellow;
      height: 100px;
      width: 100px;
      fill: currentColor;
     */

    svg
      height: 100px;
      width: 100px;
    

    .svg
      fill: yellow;
    

    .star
      fill: yellow;
    

    h3 
      color: blue;
    
    svg 
      fill: currentColor;
    

【问题讨论】:

html 文件中的 CSS 不能影响其他文件。不过你自己也发现了。你的问题到底是什么? 抱歉,我的问题是如何使用 css 更改 svg 的颜色 正如罗伯特所说,你不能。您需要有不同的 SVG 精灵,或者将不同的颜色变体添加到您的精灵 SVG。 currentColor 方法适用于“本地”<use>,但仅适用于 Chrome。 plnkr.co/edit/IpdBW31x6nDa2w7pTLxZ?p=preview 【参考方案1】:

我知道这是一个老问题,但是如果您删除外部 svg 文件中的所有内联样式填充引用,您的 plunker 就可以工作。然后它将继承 CSS 中的填充集。

【讨论】:

以上是关于svg - 使用 css 更改 svg 颜色并加载外部精灵的主要内容,如果未能解决你的问题,请参考以下文章

使用 CSS 更改 svg 图像的颜色 [重复]

SVG 对象从外部 CSS 更改颜色

使用 css 更改颜色 svg 文件

如何使用 CSS(jQuery SVG 图像替换)更改 SVG 图像的颜色?

如何使用 CSS(jQuery SVG 图像替换)更改 SVG 图像的颜色?

如何在 Angular 中更改 svg 元素的颜色?