【问题标题】:How to make SVG modifiable without using in-line svg如何在不使用内联 svg 的情况下使 SVG 可修改
【发布时间】:2021-05-03 03:38:15
【问题描述】:

我想在我的网站中使用 SVG 图标,并且我知道使用 <image> 会限制我更改 SVG 属性的能力(例如,我无法更改悬停时的填充颜色)。

于是我找到了 in-line SVG 的方法,它似乎可以更好地进行操作。但直觉告诉我,将 SVG 绘图数据放入 HTML 文件会在未来产生可维护性问题。

我正在尝试找到一种方法,我可以...

  1. 将我的 svg 保存在另一个外部文件中
  2. 将该文件中的 svg 调用到我的 html 文件中
  3. html 文件仍然可以更改填充颜色。

这可能吗?如果是,我应该寻找的关键字是什么?

【问题讨论】:

标签: html css svg


【解决方案1】:

这取决于您使用的编程语言。

  • 如果你在 (iframe) 中包含一个 HTML 文件,你就不能做你想做的事。

  • 如果您使用 (include) 包含一个 PHP 文件,它将按照您想要的方式工作。

例如:

index.php 包含到 svgs.php 文件中。


但是,您可能需要考虑使用 SVG Sprites 创建一个图标文件。 [See]

因此,您可以使用如下短命令从单个“.svg”文件加载多个图标并重新着色。

记住:此技术不支持某些 SVG 功能,例如渐变。 [1][2]

<svg viewBox="0 0 24 24" class="icon">
  <use href="#foo"></use>
</svg>

<svg viewBox="0 0 24 24" class="icon">
  <use href="#bar"></use>
</svg>

自动 SVG 精灵生成器工具https://svgsprit.es/


最后,您可以使用 SVG 注入器等第 3 部分脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2022-07-05
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    相关资源
    最近更新 更多