html - 多个图像上的 svg 剪辑路径在 Safari 中不起作用

标签 html css svg safari

我看过this question为了弄清楚如何在 Safari 中使用 svg 剪辑路径剪辑多个 block 。灵魂在评论中指出(设置 -webkit-transform:translateZ(1) 在需要裁剪的元素上工作。但是,如果我有图像而不是常规的 div block ,我将无法进行裁剪。我已经概述了一个新的代码剪断基于来自链接问题的原始问题。

如果您尝试在 Chrome 中运行该代码段,然后在 Safari 中运行,您会发现 Safari 中只显示一只小猫,而在 Chrome 中显示两只。我想让 Safari 像 Chrome 一样剪辑图像。我对依赖于使用 background-image:url(some.url.png) 的解决方案不感兴趣如果存在这样的东西。感谢您提供任何帮助或建议。

img{
  position:relative;
  height: 100px;
  width: 100px;
  clip-path: url(#clipping);
  -webkit-clip-path: url(#clipping);
  -webkit-transform:translateZ(1);
}
<svg style="background: blue; height: 0px; overflow: hidden;">
  <defs>
    <clipPath id="clipping" clipPathUnits="objectBoundingBox">
<path fill="#FFFFFF" d="M0.501,0.971c-0.014,0-0.027-0.003-0.04-0.011l-0.34-0.194c-0.024-0.014-0.04-0.041-0.04-0.069L0.081,0.306
	c0-0.028,0.015-0.055,0.04-0.069L0.458,0.04c0.013-0.007,0.026-0.011,0.04-0.011s0.027,0.003,0.04,0.011l0.339,0.194
	c0.025,0.014,0.041,0.041,0.041,0.069l0.001,0.391c0,0.028-0.015,0.055-0.04,0.069L0.542,0.96C0.529,0.968,0.515,0.971,0.501,0.971z
	"/>
    </clipPath>
  </defs>
</svg>
<div style="background-color:green; height:100px;">
<img src="http://placekitten.com.s3.amazonaws.com/homepage-samples/200/140.jpg">  
</div>

<div style="background-color:blue; height:100px;">
  <img src="http://placekitten.com.s3.amazonaws.com/homepage-samples/96/139.jpg">
</div>

https://codepen.io/Johnonym/pen/jyjzgQ

最佳答案

为 img 的父 div 尝试 -webkit-transform: translateZ(0);

-webkit-transform:translateZ(1) 对我也不起作用。

关于html - 多个图像上的 svg 剪辑路径在 Safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42341562/

相关文章:

javascript - jQuery Toggle 在窗口调整大小时不显示

html - 对于类似时间机器的效果,CSS3 动画、SVG 或 Canvas 中的哪一个表现最好?

javascript - 如何将 svg 移动/平移到某个位置?

javascript - 程序中缺少什么?即使字段留空,表单也会被接受

javascript - 我需要在 Javascript 中打印 div 并在其中附加数组内容。我怎么做?

html - Bootstrap Navbar 在窗口变小时扩展

jquery - 元素中的 ScrollLeft 溢出 :hidden

HTML 位置 :relative

css - 使用 tr :hover in CSS

javascript - 是否可以同时显示和忽略 HTML 元素?