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

cat*_*use 8 css svg css3 clip-path

我使用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>
Run Code Online (Sandbox Code Playgroud)

web*_*iki 6

首先,当您将宽度和高度属性设置为 100 时,它会使 svg 的高度和宽度为 100px。如果您希望 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="https://i.stack.imgur.com/3DR2G.jpg" x="0" y="0" height="500" width="500" style="clip-path: url(#svgPath);"/>
</svg>
Run Code Online (Sandbox Code Playgroud)

输出 :

带有 svg 剪辑路径的图像

  • 是的,这有效!但是,如果我想将 &lt;image&gt; 标记放在剪辑路径 &lt;svg&gt; 之外(如我的 codepen 示例中所示),该怎么办?那可能吗? (5认同)