如这个小提琴所示,可以使用foreignObject元素在 SVG 中渲染 CSS 精灵。
然而,这在 IE 中不受支持,所以我想知道是否有另一种方法可以做到这一点。
我怀疑答案可能是否定的,因为我发现了两个未解决的问题(1、2)
我正在使用 d3.js,所以任何能说明 d3 方法的答案都将是一个奖励。
如这个小提琴所示,可以使用foreignObject元素在 SVG 中渲染 CSS 精灵。
然而,这在 IE 中不受支持,所以我想知道是否有另一种方法可以做到这一点。
我怀疑答案可能是否定的,因为我发现了两个未解决的问题(1、2)
我正在使用 d3.js,所以任何能说明 d3 方法的答案都将是一个奖励。
如有必要,您可以使用 clipPath 挑选出图像的一部分。像这样扩展你的jsfiddle,看看我的意思......
<div class='source youtube'></div>
<svg width="100%" height="100%">
<foreignObject height=50 width=50>
<div class='source facebook'></div>
</foreignObject>
<defs>
<clipPath id="c">
<rect y="10" width="7" height="10"/>
</clipPath>
<clipPath id="c2">
<rect x="7" y="12" width="7" height="10"/>
</clipPath>
</defs>
<image transform="scale(4.5)" y="-5" width="40" height="20" xlink:href="https://s3.amazonaws.com/856/sprite.png" clip-path="url(#c)"/>
<g transform="translate(-30, 0)">
<image transform="scale(4.5)" x="0" y="0" width="40" height="20" xlink:href="https://s3.amazonaws.com/856/sprite.png" clip-path="url(#c2)"/>
</g>
<svg>