【问题标题】:Modify SVG with CSS as background-image使用 CSS 修改 SVG 作为背景图像
【发布时间】:2017-06-10 07:47:14
【问题描述】:

我想知道在使用它们时是否有办法通过 CSS 访问 SVG:

.logo {
...
  background-image: url("../VectorImages/logo.svg");
}

我发现了一些有助于将 svg 转换为内联 SVG 的脚本,这使得它们可以被 CSS 访问。试过了,它适用于 img-Tags,但是当使用 SVG 作为 div 的背景图像时,这些解决方案都不起作用。

我正在尝试更改 SVG 的颜色,所以我想要做的是

svg path { fill: #000; }

【问题讨论】:

标签: jquery css svg sass


【解决方案1】:

如果您使用的是 SCSS——我已经制作了一个 mixin 来处理 SVG 编码

笔:http://codepen.io/jakob-e/pen/doMoML/

SCSS:http://codepen.io/jakob-e/pen/GjgXmK.scss

$color-1: red;
$color-2: green;

$svg-1: '<svg viewBox="0 0 2 2"><circle fill="#{$color-1}" cx="1" cy="1" r="1"/></svg>';
$svg-2: '<svg viewBox="0 0 2 2"><circle fill="#{$color-2}" cx="1" cy="1" r="1"/></svg>';

.class-1 { @include background-svg($svg-1); } 
.class-2 { @include background-svg($svg-2); } 

【讨论】:

    【解决方案2】:

    您可以使用 data URISVG 导入 CSS。

    HTML

    <img src='data:image/svg+xml;utf8,<svg ... > ... </svg>'>
    

    CSS

    .logo {
        background: url('data:image/svg+xml;utf8,<svg ...> ... </svg>');
    }
    

    使用此方法将允许您使用fillSVG 着色,同时将其用作background

    注意:有关在 CSS 中使用 data URI 实现 SVG 的更多信息,请参阅 this article

    【讨论】:

    • 感谢您的回答。是的,这将是一个解决方案,但如果我可以将我的 svg 保存在单独的文件中,那就太好了,这样 css 文件就会保持干净。
    • @Jmie 您可以专门为 SVG 背景创建一个新的 CSS 文件。不幸的是,我不知道允许您将 SVG data URI 导入 CSS 文档的解决方案。
    猜你喜欢
    • 2017-05-15
    • 2012-11-24
    • 2012-11-03
    • 2015-02-02
    • 2020-11-02
    • 2014-03-24
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多