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

11

我正在将SVG用作图像的蒙版,并尝试对其进行调整大小。我尝试指定宽度和高度(为100),但它仍然不会缩放。仅保持相同的大小。

Codepen演示

这是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>


1
你可能需要提供SVG的视口信息而不是高度/宽度...然后它应该可以正确缩放。 - Paulie_D
1个回答

5

首先,当您将宽度和高度属性设置为100时,它会使svg的高度和宽度为100像素。如果您想让svg具有全宽度,您需要给它100%的宽度。

其次,正如@Paulie_D所评论的那样,您需要为viewbox属性提供一个值,以为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


5
可以的!不过,如果我想把 <image> 标签放在 clip-path <svg> 外面,就像在我的 CodePen 示例中那样,这是否可行? - catandmouse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接