我想使用SVG作为
background-image
HTML元素的。但是,当我在SVG中的任何地方使用掩码时,这将失败。什么时候?
mask="url(#m)"
HTML格式:
<div>Some element.</div>
JavaScript代码:
// The following SVG is correctly rendered as a standalone SVG file, but not in `background-image`.
const svg = `<svg viewBox="0 0 200 100" xmlns="http://www.w3.org/2000/svg">
<mask id="m" maskContentUnits="objectBoundingBox">
<rect fill="white" x="0" y="0" width="100%" height="100%" />
</mask>
<rect mask="url(#m)" width="100" height="100" fill="red" />
</svg>`;
document.querySelector("div").style.backgroundImage = `url(data:image/svg+xml;utf8,${encodeURIComponent(svg)}`;
(
JSFiddle link
)
预期结果:
是否可以在
背景图像
这样地?如果没有,原因是什么?
相应地,如果我添加,背景图像也无法显示
style="transform: translate(0)"
致
svg
(虽然其他风格,比如
style="background-color: blue"
transform
在SVG中
背景图像
?