如这个小提琴所示,可以使用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>