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

Posted

技术标签:

【中文标题】如何使 svg 蒙版图像与 Internet Explorer 兼容【英文标题】:How to make an svg masked image compatible with Internet Explorer 【发布时间】:2015-11-17 20:02:02 【问题描述】:

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

这是我的 svg 代码

<svg   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' />

这是我的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)

由于 svg 无法在 Internet Explorer (IE 11) 中运行,在阅读 this article 讨论与浏览器的兼容性问题后,我添加了

<meta http-equiv="X-UA-Compatible" content="IE=edge">

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

但仍然没有显示 svg 形状。

这是一个Jsfiddle。注意 Jsfiddle 不允许元标记

Tks

【问题讨论】:

请问如何?您能否更具体一点,或者根据我已经写过的内容给我一个例子? Tks 感谢它正在工作。但是它不显示形状的左角。它削减它。你能帮我解决吗?您可以将此添加为答案,以便我可以验证它。 jsfiddlejsfiddle.net/manofgod/omat2km1/3 【参考方案1】:

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

* 
  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)
    <svg   >
      <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   xlink:href='http://i.imgur.com/NR6kefg.jpg' class='photo_rectangle_inverse'/>
      <image transform="translate(170,0)"   xlink:href='http://i.imgur.com/DXaH323.jpg' class='photo_rectangle_inverse' />
    </svg>'

【讨论】:

谢谢,但请如何在同一行显示两个图像,就像我在问题中所做的那样。你给我的答案只显示一张图片。 jsfiddlejsfiddle.net/manofgod/omat2km1/5 是的,先生,但这是我的问题的一部分。你能帮我解决这个问题吗?谢谢 我已经做到了。在答案中按运行代码 sn-p。有两张图片。 请先生,当我运行代码 sn-p 时,它在一行上只显示一个图像。截图i.imgur.com/xiejUQg.png 我在答案中添加了屏幕截图。这是我按下运行代码 sn-p 时看到的。我不知道你是怎么得到一张图片的。

以上是关于如何使 svg 蒙版图像与 Internet Explorer 兼容的主要内容,如果未能解决你的问题,请参考以下文章

如何从圆形蒙版图像制作 gif?

如何使用 numpy 读取灰度蒙版图像?

如何在蒙版图像上进行基于网格(密集)的光流?

如何将使用 Mask Rcnn 在自定义对象检测上创建蒙版图像的 Keras 模型转换为 CoreML 模型以在 iOS 应用程序中使用?

Opencv - 蒙版图像导致黑色图像

Swift - 在蒙版图像上放置阴影