用于iOS 11.x的Cordova中的CSS图像掩码已损坏?

我在我的meteor应用程序中使用-webkit-mask-image,如下所示:

... background-color: purple; -webkit-mask-image: url('images/user_plum.png'); ... 

它适用于所有浏览器。 它在Android上的cordova版本中运行良好。 它在iOS Cordova中运行良好。 现在,只有在iOS中,我使用此技术的所有图标都是不可见的,即使它们仍然可以点击并运行。

问题出现在两个用户的iPhone上,我在iOS模拟器中重现了它。 我的iPhone运行正常。 卸载/重新安装应用程序,重建/重启服务器等,没有任何改变。 直到我将手机更新到iOS 11.4,现在我的手机也有问题。 如果我从CSS中删除-webkit-mask-image行,我会普遍获得图标所在的正确背景颜色方块。 那个和其他模拟器测试清楚地表明隐形图标只发生在iOS设备和模拟器上,并且只有在使用-webkit-mask-image时才会发生。 是否有人知道iOS 11.1和11.4之间的任何变化会破坏Cordova webview对-webkit-mask-image的处理?

好的,这个问题非常真实,我做了一堆测试,安装了不同风格的inappbrowser等等,都无济于事。 但这是一个解决方法(感谢@JamesMontagne的答案和jsfiddle 有没有办法用CSS着色白色PNG图像?这导致我试一试):

只需使用-webkit-mask-box-image而不是-webkit-mask-image。

 background-color: purple; -webkit-mask-box-image: url('images/user_plum.png'); 

这继续适用于它已经工作的所有平台,但也适用于这个iOS 11.x Cordova环境,其中-webkit-mask-image已经破坏。

需要明确的是,-webkit-mask-box-image在mozilla文档中包含“非标准”警告: https : //developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-盒子图像 。

但是当-webkit-mask-image没有时它会起作用,所以我现在就用它了。

另外,fyi,user_plum.png是一个带有梅花图标图像的透明png。 不透明部分的颜色是什么并不重要,在这个掩模中没有进行颜色数学计算。 图标不一定是白色工作(许多css屏蔽主题的网页包括白色或黑色面具的讨论)。 在此处输入图像描述