このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

<clipPath>

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.

<clipPath>SVG の要素で、 clip-path プロパティで使用されるクリッピングパスを定義します。

クリッピングパスは、描画が適用される領域を制限する。概念的には、クリッピングパスで囲まれた領域の外にある部分は描画されません。

使用コンテキスト

カテゴリー無し
許可されている内容任意の数、任意の順序の以下の要素。
アニメーション要素
説明的要素
図形要素
<text><use>

属性

clipPathUnits

<clipPath> 要素のコンテンツの座標系を定義します。 値の型: userSpaceOnUse | objectBoundingBox; デフォルト値: userSpaceOnUse; アニメーション:

DOM インターフェイス

この要素は SVGClipPathElement インターフェイスを実装しています。

html
<svg viewBox="0 0 100 100">
  <clipPath id="myClip">
    <!--
      円の外側にあるものはすべて切り取られるため、
      見えなくなります。
    -->
    <circle cx="40" cy="35" r="35" />
  </clipPath>

  <!-- 参照用の元の黒いハート -->
  <path
    id="heart"
    d="M10,30 A20,20,0,0,1,50,30 A20,20,0,0,1,90,30 Q90,60,50,90 Q10,60,10,30 Z" />

  <!--
    クリップの円の中にある赤いハートの一部だけが、
    見えるようになっています。
  -->
  <use clip-path="url(#myClip)" href="#heart" fill="red" />
</svg>
css
/* r 幾何プロパティを実装しているブラウザー向けに CSS を少し追加 */

@keyframes openYourHeart {
  from {
    r: 0;
  }
  to {
    r: 60px;
  }
}

#myClip circle {
  animation: openYourHeart 15s infinite;
}

クリッピングパスは、概念的には、参照している要素のカスタムビューポートと同じです。したがって、要素のレンダリングに影響を与えますが、要素の内在的な形状には影響を与えません。クリッピングされた要素(<clipPath> 要素を clip-path プロパティで参照している要素、または参照している要素の子)のバウンディングボックスは、クリッピングされていない場合と同じでなければなりません。

デフォルトでは、クリップされた領域では pointer-events が発行されません。例えば、半径 10 の円が半径 5 の円でクリッピングされている場合、小さい方の半径の外側では "click" イベントを受け取ることはありません。

仕様書

Specification
CSS Masking Module Level 1
# ClipPathElement

ブラウザーの互換性

関連情報