跨浏览器 css 掩码

cross browser css mask

我正在尝试在带有图像的 svg 中的 css 中创建一个 mask

--> 我在 2 个 svg 之间插入一张图片(在一个文件中)

我添加了一个 class crop-image 像这样

<image id="image-front" xlink:href="" class="crop-image" />

这是我的 class:

mask: url("/wp-content/themes/customtheme/assets/images/crop_image.svg");
-webkit-mask: url("/wp-content/themes/customtheme/assets/images/crop_image.svg");
height: 100%;
width: auto;

此代码在 firefox 上运行良好,但在 chrome 或 safari 上不起作用。 class 没有在我的 svg 中调用,但即使我在我的 svg 中手动复制这个 class,它也不起作用

CSS 中的遮罩是使用 mask-image 属性 完成的,必须提供图像作为遮罩。图像遮罩中任何 100% 黑色的东西都完全可见,任何 100% 透明的东西都将完全隐藏,任何 in-between 的东西都会部分遮住图像。 CSS 中的线性和径向渐变是生成的图像,因此它们可以用作图像遮罩。使用遮罩元素的 SVG 也可以用作图像遮罩。

根据 caniusemask 在 Firefox 之外不受支持。对于 Chrome 和 Safari,您可以使用 mask-image.