【发布时间】:2021-11-21 20:51:48
【问题描述】:
我尝试在 h1 标题元素中添加一个 SVG 图标:
<h1>
<svg class="my-svg-inline--fa my-fa-w-18">
<use href="https://www.datanumen.com/wp-content/themes/datanumen/images/icons/icons.svg#shopping-cart"></use>
</svg> Buy Full Version Now!
</h1>
但 SVG 图标不会出现。原始 URL 是 https://www.datanumen.com/outlook-repair-order/?nowprocket,我在 JSFiddle 中的 https://jsfiddle.net/alanccw/871v6jke/3/ 创建它以演示该问题。两者都不会显示 SVG 图标。
更新
在 JSFiddle 中测试时,出现以下错误:
fiddle.jshell.net/:140 Unsafe attempt to load URL https://www.datanumen.com/wp-content/themes/datanumen/images/icons/icons.svg from frame with URL https://fiddle.jshell.net/alanccw/871v6jke/3/show/?editor_console=. Domains, protocols and ports must match.
这个问题在Unsafe attempt to load URL svg讨论过
但在原来的网址中,没有这个问题,但图标仍然不显示。
【问题讨论】:
-
您为什么不想使用
<img>来代替它?它可以加载您的 SVG。 -
@Brad,
可能无法在 SVG 精灵中使用符号?看我的测试jsfiddle.net/alanccw/871v6jke/6
-
如果您按照 Brad 的建议考虑使用图片,请阅读How SVG Fragment Identifiers Work
-
@enxaneta,谢谢。看来我需要修改 SVG 文件以使用 viewbox 来识别 SVG 的不同部分,这不是很复杂。
-
也许没有那么复杂(除非你没有任何 javascript 技能)是一个现代的 Web 组件来为图标创建 SVG:iconmeister.github.io