html - SVG 蒙版无法在 Chrome 中调整大小

标签 html css svg

在 Chrome 中调整 SVG 大小时,其中的蒙版不会随之调整大小。因此,在下面的示例中,图像通过正确的切片正确调整大小,但蒙版卡在原始位置。

例如Safari 掩码正确调整大小。

<svg>
  <defs>
    <mask id="m">
      <rect width="100%" height="100%" fill="#fff" />
      <rect width="100%" height="100%" fill="url(#g)" />
    </mask>
    <linearGradient id="g" gradientTransform="rotate(90)">
      <stop offset="0.3" stop-opacity="0.0" />
      <stop offset="1" stop-opacity="1.0" />
    </linearGradient>
  </defs>
  <image mask="url(#m)" width="100%" height="100%" xlink:href="https://unsplash.it/5092/3395?image=1062" preserveAspectRatio="xMidYMid slice"></image>
</svg>

你可以用这支笔来玩弄它: https://codepen.io/larsenwork/pen/9dc4bb319109e719728a01bac9bba0d4

最佳答案

更新css部分

svg { 
  position: absolute;
  width: 100%;
  height: 100vh; /* Use height in vh */
}

body {
  position: relative;
  background-color: #bada55;
  height: 90vh;
}

svg {
  position: absolute;
  width: 100%;
  height: 100vh;
}
<svg>
  <defs>
    <mask id="m">
      <rect width="100%" height="100%" fill="#fff" />
      <rect width="100%" height="100%" fill="url(#g)" />
    </mask>
    <linearGradient id="g" gradientTransform="rotate(90)">
      <stop offset="0.3" stop-opacity="0.0" />
      <stop offset="1" stop-opacity="1.0" />
    </linearGradient>
  </defs>
  <image mask="url(#m)" width="100%" height="100%" xlink:href="https://unsplash.it/5092/3395?image=1062" preserveAspectRatio="xMidYMid slice"></image>
</svg>

关于html - SVG 蒙版无法在 Chrome 中调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44303365/

相关文章:

javascript - 获取新创建的 html 属性的值

javascript - 访问链接函数内的当前自定义指令元素

javascript - 是否存在 XML 对象遵循的高度或宽度的 DOM 或 CSS 属性

javascript - 使用 Google Maps API 旋转 SVG 符号以匹配飞机航向

html - 宽度和高度的宽度不起作用

javascript - PHP 代码在不需要时自动在 Javascript 中运行

jquery - 在 jWYSIWYG 中设置默认字体系列

svg - 如何使用 Webpack 通过 React 内联多个 SVG?

html - SVG 圆的样式在 Firefox 中不起作用,浏览器删除了半径属性

html - 在 HTML5 中,如何按照我需要的方式对齐标题