css - 如何调整 SVG 剪辑路径的大小?

标签 css svg clip-path

我正在使用 SVG 作为图像的 mask ,并尝试调整它的大小。我尝试指示宽度和高度(至 100),但它仍然无法缩放。只是保持相同的大小。

Codepen Demo

这是 SVG 代码:

<svg height="100" width="100">
  <defs>
    <clipPath id="svgPath">
      <path fill="#EDEBEA" d="M468.855,234.292H244.117V9.439L468.855,234.292z" />
      <path fill="#EDEBEA" d="M6.864,8.939h224.73v224.733L6.864,8.939z" />
      <path fill="#EDEBEA" d="M244.118,469.73V245.005h224.737L244.118,469.73z" />
      <path fill="#EDEBEA" d="M231.594,245.005V469.73H6.863L231.594,245.005z" />
    </clipPath>
  </defs>
</svg>

最佳答案

首先,当您将 width 和 height 属性设置为 100 时,它会使 svg 的高和宽分别为 100px。如果你想让 svg 是全宽的,你需要给它 100% 的宽度。

其次,正如@Paulie_D 所评论的,您需要为 viewbox attribute 赋值为 svg 中的元素提供比例和坐标系。这是一个包含 viewbox="0 0 500 500"width="30%"的示例:

<svg viewbox="0 0 500 500" width="30%" >
  <defs>
    <clipPath id="svgPath">
      <path fill="#EDEBEA" d="M468.855,234.292H244.117V9.439L468.855,234.292z" />
      <path fill="#EDEBEA" d="M6.864,8.939h224.73v224.733L6.864,8.939z" />
      <path fill="#EDEBEA" d="M244.118,469.73V245.005h224.737L244.118,469.73z" />
      <path fill="#EDEBEA" d="M231.594,245.005V469.73H6.863L231.594,245.005z" />
    </clipPath>
  </defs>
  <image xlink:href="http://i.stack.imgur.com/3DR2G.jpg" x="0" y="0" height="500" width="500" style="clip-path: url(#svgPath);"/>
</svg>

输出:

image with svg clipPath

关于css - 如何调整 SVG 剪辑路径的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34064917/

相关文章:

css - 样式类中的 valign 属性

css - 如何将 svg-glyph 转换为路径?

css - Safari 在 SVG Logo 的顶部和底部提供填充

css - Firefox 和 IE9+ 的剪辑路径替代方案

html - 多个剪辑路径

html - 如何在 CSS 中使用圆形模具创建按钮

用于语言标志的 HTML img 与 CSS 背景图像

html - div 在较小的屏幕尺寸中重叠

html - 在此 Bootstrap 模板中,侧边栏如何粘在页面底部?

html - 如何将div放置在彼此之上并水平对齐