| 属性名 | clip-path |
|---|---|
| 値 | <clip-source> | [ <basic-shape> || <geometry-box> ] | none |
| 値の詳細 | <geometry-box> = margin-box | border-box | padding-box | content-box | fill-box | stroke-box | view-box |
| 初期値 | none |
| 適用可能要素 | すべての要素。SVGでは、<defs> とグラフィック要素を除くコンテナ要素 |
| 継承 | 継承しない |
| メディア | visual |
| アニメーション | <basic-shape> に対してのみ有効 |
| CSS | IE/Edge | Firefox | Chrome | Opera | Safari |
|---|---|---|---|---|---|
| CSS3 | 未 | 3.5 | 24(-webkit) | 15(-webkit) | 7(-webkit) |
矩形、円形、楕円形、星型などの領域をクリップ(抜き出し)し、表示します。position:absolute または position:fixed を適用した要素に対してのみ有効です。CSS2 では clip が定義されていましたが、CSS3 からは clip-path に移行する予定です。現時点ではまだ一部のブラウザでしかサポートされていません。Firefox では url() 指定のみサポートしています。
| 値 | 説明 |
|---|---|
| <clip-source> | SVGの <clipPath> 要素への URL。例: url(resources.svg#c1) |
| <basic-shape> | polygon() や circle() などの形状関数を指定します。 |
| margin-box | マージンを含めた矩形を指定します。 |
| border-box | ボーダーラインを含めた矩形を指定します。 |
| padding-box | パディングを含めた矩形を指定します。 |
| content-box | パディングの内側。コンテント領域の矩形を指定します。 |
| fill-box | オブジェクトバウンディングボックスをリファレンスボックスとして使用します。 |
| stroke-box | ストロークバウンディングボックスをリファレンスボックスとして使用します。 |
| view-box | 直近の SVG ビューポイントをリファレンスボックスとして使用します。 |
| none | クリッピングパスを指定しません。 |
<basic-shape> には下記などを指定します。
<fill-rule> には塗りつぶしルールを nonzero または evenodd で指定します。省略時は nonzero になります。<x1>, <y1> で、マスキングする形状の点を指定します。
clip-path: polygon(50px 0px, 20px 100px, 100px 40px, 0px 40px, 80px 100px); clip-path: polygon(nonzero, 50px 0px, 20px 100px, 100px 40px, 0px 40px, 80px 100px); clip-path: polygon(evenodd, 50px 0px, 20px 100px, 100px 40px, 0px 40px, 80px 100px);
円形を指定します。<shape-radius> には半径を指定します。<position> には中心点を指定します。center は画像の中心を意味します。
clip-path: circle(50px at center); clip-path: circle(20px at 30px 30px);
楕円を指定します。<r1>, <r2> には横方向、縦方向の半径を指定します。<position> には中心点を指定します。center は画像の中心を意味します。
clip-path: ellipse(20px 30px at center); clip-path: ellipse(20px 30px at 50px 50px);
<shape-arg> には、top, right, bottom, left のオフセットを指定します。<border-radius> には border-radius の値を指定します。
clip-path: inset(5px 8px 10px 12px round 10px);
.sample-none {
-webkit-clip-path: none;
clip-path: none;
position: absolute;
width: 100px;
height: 100px;
left: 10px;
top: 10px;
}
.sample-polygon {
-webkit-clip-path: polygon(50px 0px, 20px 100px, 100px 40px, 0px 40px, 80px 100px);
clip-path: polygon(50px 0px, 20px 100px, 100px 40px, 0px 40px, 80px 100px);
position: absolute;
width: 100px;
height: 100px;
left: 130px;
top: 10px;
}
<div style="position:relative; width:500px; height:120px; margin:1em; border:1px solid gray;"> <img src="../image/back.gif" alt="" class="sample-none"> <img src="../image/back.gif" alt="" class="sample-polygon"> </div>