【问题标题】:Changing color of SVG which was embedded using <object>更改使用 <object> 嵌入的 SVG 的颜色
【发布时间】:2017-10-01 02:12:16
【问题描述】:

我在 StackOverflow 上只找到了一种解决方案,但用户说它对他们不起作用。

所以,我将 SVG 图像嵌入到 html:

<object id="help-center" type="image/svg+xml" data="assets/help_center.svg">
</object>

在这种情况下,我不明白如何在悬停时更改颜色。

在这个 sn-p https://jsfiddle.net/annaolsh/3j8dmnn2/ SVG 就在 HTML 中,并且成功悬停时颜色会发生变化。如何做同样的事情?

【问题讨论】:

    标签: javascript html css svg


    【解决方案1】:

    svg objectcss 样式只能应用于内联svg。如果使用带有 HTML &lt;object&gt; 标签的外部 url 嵌入它,则不能在 document 中使用 &lt;style&gt; 标签,或者不能使用外部 css 文件修改 svg 内容。

    如果您嵌入了外部svg 文件,则必须在svg 文件本身中添加&lt;style&gt; 标签,如下所示。

    <svg ...>
      <style>
        /* SVG specific fancy CSS styling here */
      </style>
      ...
    </svg>
    

    否则获取svg文件的源并将其内联到HTML文件中,然后直接添加您的css样式。这就是您的 JSFiddle 示例有效而您提供的代码示例无效的原因。

    您可以在此处详细了解如何设置 svg 对象的样式。
    https://css-tricks.com/using-svg/#article-header-id-11

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-27
      • 2015-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-10
      • 2012-11-10
      • 2021-10-31
      相关资源
      最近更新 更多