【发布时间】:2017-07-18 22:17:37
【问题描述】:
我想使用在同一个 HTML 文件(内联 SVG)中定义的 SVG 形状来剪辑我的元素。
它适用于clip-path:
div {
width: 200px;
height: 200px;
background-color: red;
clip-path: url("#c");
}
<div>
<svg>
<defs>
<clippath id="c">
<circle cx="100" cy="100" r="50" />
</clippath>
</defs>
</svg>
</div>
但是当使用掩码时,虽然这在 Firefox 中可以正常工作,但它在 Chrome 中不应用掩码:
div {
width: 200px;
height: 200px;
background-color: red;
mask: url("#m");
}
<div>
<svg>
<defs>
<mask id="m">
<circle cx="100" cy="100" r="50" fill="white" />
</mask>
</defs>
</svg>
</div>
四处搜索 (example),Chrome 似乎不希望掩码指的是定义,而是指整个图像。但是,如果已内联,有没有办法引用整个图像?或者,我还能做些什么来应用内联元素的掩码?
【问题讨论】:
-
@Kaiido 这不是重复的,因为我的问题是关于内联 SVG;另一个问题明确与外部文件有关,而这种区别是问题的重点。
-
是的,很抱歉刚刚尝试了一下,发现它不适用于内联的...您希望非 js 解决方案吗?
-
@Kaiido 我对任何事情都持开放态度,但非 js 可能更可取。