带有图像图案的 SVG 仅适用于 Chrome



我正在尝试获取顶部有角度的图像,并且图像需要通过CMS进行更新。我发现最符合浏览器的方法是使用 SVG,创建一个路径并为其提供模式。我现在的代码是:

<svg class="workIntroImage" width="696px" height="921px" viewBox="0 0 696 921">
  <defs>
    <pattern id="workIntroImg" width="1920" x="0" y="0" height="1080" patternUnits="userSpaceOnUse">
      <image xlink:href="https://www.usmagazine.com/wp-content/uploads/2017/12/147234372_the-office-zoom.jpg" x="0" y="0" width="1920" height"1080"></image>
    </pattern>
  </defs>
  <g x="0" y="0" transform="translate(-37.000000, 0.000000)">
    <path x="0" y="0" d="M0,0 L725.886225,151.670321 C729.593802,152.445001 732.25,155.713561 732.25,159.501206 L732.25,928 L0,928 L0,0 Z" fill="url(#workIntroImg)"></path>
  </g>
</svg>

但它只适用于Chrome - 只是在Firefox,Safari和Edge中显示为空白。任何适用于所有现代浏览器的见解或替代解决方案将不胜感激!

这可能

只是一个错字 - <image ... height"1080">中缺少一个=。Chrome擅长解析无效标记,其他浏览器并不总是那么多。

<svg class="workIntroImage" width="696px" height="921px" viewBox="0 0 696 921">
  <defs>
    <pattern id="workIntroImg" width="1920" x="0" y="0" height="1080" patternUnits="userSpaceOnUse">
      <image xlink:href="https://www.usmagazine.com/wp-content/uploads/2017/12/147234372_the-office-zoom.jpg" x="0" y="0" width="1920" height="1080"></image>
    </pattern>
  </defs>
  <g x="0" y="0" transform="translate(-37.000000, 0.000000)">
    <path x="0" y="0" d="M0,0 L725.886225,151.670321 C729.593802,152.445001 732.25,155.713561 732.25,159.501206 L732.25,928 L0,928 L0,0 Z" fill="url(#workIntroImg)"></path>
  </g>
</svg>

最新更新