有一个使用SVG Sprite制作的基于图标导航的SAP(AngularJS和Angular Route)。因此,我有类似以下的内联代码:
<div style="height: 0; width: 0; position: absolute; visibility: hidden">
<svg xmlns="http://www.w3.org/2000/svg">
<symbol id="icon-grid-32" viewBox="0 0 32 32">
<g stroke-width="2" stroke-linecap="round" stroke-miterlimit="10" stroke-linejoin="round">
<path d="M2 2h11v11H2zM19 2h11v11H19zM2 19h11v11H2zM19 19h11v11H19z"/>
</g>
</symbol>
</svg>
</div>
还有像这样的导航图标:
<a href=""><svg class="icon icon-32 outline black"><use xlink:href="#icon-grid-32"></use></svg></a>
我在这个导航中所看到的都是空的,<use>
元素的大小为0 × 0像素。我知道 Firefox 存在关于 xml:base 的 错误,但添加了 xml:base 也没有帮助我解决问题。您可以尝试使用这个示例:http://css.yoksel.ru/assets/demo/svg-in-firefox/svg-has-base.html
它可以在 Firefox、Safari 和其他浏览器中使用,但在 Chrome 49+ 中不行(48 版本没有这个问题)。