跨浏览器SVG精灵堆栈解决方案

时间:2015-12-26 06:16:19

标签: css iframe svg stack sprite

我拼命想让SVG精灵堆栈在所有浏览器中运行(IE8 +)。我使用了很棒的https://github.com/jkphl/svg-sprite来生成堆栈,并且我已经非常了解了这个主题。正如https://betravis.github.io/icon-methods/svg-sprite-sheets.html所暗示的那样,目前最安全的解决方案(就浏览器支持而言)似乎是这个

<iframe src='bunnies.svg#carrot-bunny'></iframe>

这确实适用于我需要定位的所有浏览器。然而,这会带来一个新问题:因为我在iframes src属性中使用了一个锚点,浏览器会滚动到这个iframe(这当然是不受欢迎的)。

我找到了一个解决方法:我通过CSS隐藏iframe(display:none)并将其更改为&#34; display:block&#34;,一旦我获得了Windows加载事件。这种解决方法可以在除Safari之外的所有浏览器中完成,只要iframe出现,浏览器就会滚动到iframe。

我现在有点迷路了。你知道在Safari中阻止这种行为的方法吗?或者我应该更好地遵循另一种方法?你如何让你的SVG精灵堆栈工作?

1 个答案:

答案 0 :(得分:0)

因此,显然在撰写本文时支持所有主流浏览器时不可能使用SVG堆栈。我现在使用SVG符号(https://css-tricks.com/svg-symbol-good-choice-icons/),并且一旦在Safari中的img标签中遵守锚点,它将切换到SVG堆栈。