如何使SVG蒙版的图像与Internet Explorer兼容

Man*_*God 4 css internet-explorer svg css3

最近,我创建了一个被svg屏蔽的图像,该图像在Chrome中可完美运行,但在我的Internet Explorer版本中无法正常工作。这是我的svg预期的最终结果

预期最终结果

这是我的SVG代码

<svg width="0" height="0" viewBox="0 0 160 160">
  <defs>
    <clipPath id="shape">
      <path d="M10,70 Q0,80 10,90 L70,150 Q80,160 90,150 L150,90 Q160,80 150,70 L90,10 Q80,0 70,10z" />
    </clipPath>
  </defs>
</svg>

<img src='http://i.imgur.com/NR6kefg.jpg' class='photo_rectangle_inverse' />
<img src='http://i.imgur.com/DXaH323.jpg' class='photo_rectangle_inverse' />
Run Code Online (Sandbox Code Playgroud)

这是我的CSS

* {
  padding: 0;
  margin: 0;
}
.photo_rectangle_inverse {
  height: 160px;
  width: 170px;
  -webkit-clip-path: url(#shape);
  clip-path: url(#shape);
  position: relative;
  -webkit-transform: translateZ(1px)
}
Run Code Online (Sandbox Code Playgroud)

由于svg在Internet Explorer(IE 11)中无法使用,因此在阅读了有关浏览器兼容性问题的文章后,我添加了

<meta http-equiv="X-UA-Compatible" content="IE=edge">
Run Code Online (Sandbox Code Playgroud)

我的页面顶部,因为基于本文的IE Edge似乎与Svg最兼容。

但svg形状仍未显示。

这是一个Jsfiddle。注意Jsfiddle不允许使用meta标签

如何使svg蒙版图像与Internet Explorer兼容?

ks

Rob*_*son 7

IE不会将SVG剪辑应用于html元素,因此您需要SVG <image>元素而不是HTML <img>元素,例如

* {
  padding: 0;
  margin: 0;
}
html, body {
  height: 100%;
  width: 100%;
}

.photo_rectangle_inverse {
  -webkit-clip-path: url(#shape);
  clip-path: url(#shape);
  position: relative;
  -webkit-transform: translateZ(1px)
}
Run Code Online (Sandbox Code Playgroud)
    <svg height="100%" width="100%" >
      <defs>
        <clipPath id="shape">
          <path d="M10,70 Q0,80 10,90 L70,150 Q80,160 90,150 L150,90 Q160,80 150,70 L90,10 Q80,0 70,10z" />
        </clipPath>
      </defs>

      <image height="160px" width="170px" xlink:href='http://i.imgur.com/NR6kefg.jpg' class='photo_rectangle_inverse'/>
      <image transform="translate(170,0)" height="160px" width="170px" xlink:href='http://i.imgur.com/DXaH323.jpg' class='photo_rectangle_inverse' />
    </svg>'
Run Code Online (Sandbox Code Playgroud)

IE 11屏幕截图