使SVG元素透明(像面具)

时间:2013-12-20 19:44:17

标签: svg

如何使用多边形作为蒙版,这将使圆圈中的区域透明? 我无法管理

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100">
    <circle cx="50" cy="50" r="50" />
    <polygon points="20,30 25,20 80,40 80,60 25,80, 20,70 70,50"/>
</svg>

2 个答案:

答案 0 :(得分:6)

面具非常简单。这里描述了它们:http://www.w3.org/TR/SVG11/masking.html#Masking

在您的情况下,只需添加几行即可。

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
     viewBox="0 0 100 100">

    <circle cx="50" cy="50" r="50" mask="url(#hole)"/>

    <mask id="hole">
       <rect x="0" y="0" width="100" height="100" fill="white"/>
       <polygon points="20,30 25,20 80,40 80,60 25,80, 20,70 70,50" fill="black"/>
    </mask>
</svg>

在蒙版定义中,我们必须添加一个圆形大小的白色矩形以使<circle>可见(白色表示不透明),然后我们使<polygon>黑色(透明)创建洞。

Fiddle here

答案 1 :(得分:-1)

我想尝试使用Inkscape创建SVG文件,相互绘制项目,选择它们并使用Path->Exclusion菜单执行此操作。保存文件,然后您可以查看.svg文件的代码以查看它的作用。