Как изменить размер SVG clip-path?

Я использую SVG в качестве маски для изображения, и я пытаюсь изменить его размер. Я попытался указать ширину и высоту (до 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>

1 ответов


Firts, когда вы устанавливаете атрибуты ширины и высоты до 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="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