【问题标题】:SVG colouring - why does that not work?SVG 着色 - 为什么这不起作用?
【发布时间】:2016-10-05 18:50:57
【问题描述】:

我正在尝试通过 css 为 svg 文件的一部分着色,但这似乎不起作用。 这是 svgs 的代码:

<svg xmlns="http://www.w3.org/2000/svg" data-name="logo" viewBox="0 0 87.6 128.2"><title>  sw17_rebrand_logo</title><path class="logo_top" d="M15.6 86.9C-1.8 71-6.4 37.2 16 14.9S72-2.5 87.6 14.7Z"/><path class="logo_bottom" d="M72.3 41.2c20.2 19.2 19.5 53.7-1.5 73.2-22.5 21-55.4 16-70.9-1.1Z"/></svg>

这就是CSS

.logo_top{
    fill:blue;
}

html 看起来是这样的

 <a href="#" class="logo"><img class="logo_img" src="images/sw17_rebrand-logo.svg"/></a>

但这并没有什么作用。我什至没有在 Webdev Tools 中看到那个特定的 css 代码。如果我将代码 (style="fill:blue") 直接放入 svg 中,这是可行的,但这不是我在这里需要的方式。

我做错了什么?

【问题讨论】:

  • 把svg放到html中,而不是src。
  • 参见此处:svgontheweb.com/#css 请特别注意在&lt;object&gt; 标记中包含(链接)它们的能力,以及由此提供的交互性。
  • CSS 不能跨不同的文档工作,并且图像是一个单独的文档。

标签: css svg


【解决方案1】:

由于两个 cmets 已经 100% 回答了这个问题 - 我将总结一下以结束问题:

a) 您可以将 svg 直接放入 html 中,而不是使用 &lt;img&gt; 链接到它。这样,在我的问题中使用 svg 着色可以顺利进行。 b)您通过附加该代码来稍微操纵您的 svgs 源代码

// Add to very start of SVG file before <svg>
<?xml-stylesheet type="text/css" href="style.css"?>

到文件。这样你仍然可以使用&lt;img src="the.svg"...

【讨论】:

  • 如果您通过 标签显示 SVG,则不能使用外部文件作为 CSS 样式表。您必须对样式表进行 URL 编码并将其嵌入到 SVG 文件本身中。
猜你喜欢
  • 1970-01-01
  • 2012-06-02
  • 2021-08-21
  • 1970-01-01
  • 2013-04-26
  • 1970-01-01
  • 2021-11-02
  • 2012-11-17
相关资源
最近更新 更多