css - -webkit-mask-image - 使用 SVG 作为掩码

标签 css svg

我正在尝试使用 SVG 为 HTML 元素创建掩码。出于浏览器兼容性原因(我可能是错的),我将 SVG 图像应用为数据 uri:

#shape { 
   width:200px;
   height:200px;
   background:blue;
   -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><rect fill='white' x='90' y='50' width='70' height='50'/><rect fill='white' x='150' y='150' width='70' height='50'/></svg>");
   -webkit-mask-repeat:no-repeat;
} 

SVG 本身看起来像:

<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'>
    <rect fill='white' x='90' y='50' width='70' height='50'/>
    <rect fill='white' x='150' y='150' width='70' height='50'/>
</svg>

Jsfiddle 在这里:http://jsfiddle.net/whL48/

您可以看到原来的大蓝色矩形已被遮盖以显示两个较小的矩形。

我想要实现的是与此相反 - 大的蓝色矩形是可见的,其中有两个较小的矩形被切掉,但我的 SVG 印章不是很好。

最佳答案

反转 SVG 的颜色。您还需要添加一个白色矩形来填充 SVG 的背景。

<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'>
    <rect fill='white' width="100%" height="100%"/>
    <rect fill='black' x='90' y='50' width='70' height='50'/>
    <rect fill='black' x='150' y='150' width='70' height='50'/>
</svg>

关于css - -webkit-mask-image - 使用 SVG 作为掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19599853/

相关文章:

html - SVG 中的链接图像

html - 使图像在容器内垂直缩放

javascript - 如何在 javascript 中将 scrollarea 固定到屏幕?

css - 替代设置换行符的自动换行

css - 从任意 SVG 文件制作 Sprite

html - 将 CSS 中的 SVG 调整为过去 100%

css - SVG Sprite 中的多种颜色

javascript - 使用过渡 + 不透明度更改 + 溢出隐藏时出现问题

html - 单选按钮 css 的自定义背景图像

javascript - vue.js 组件应该如何合理组织?