そろそろclip-pathはいかがでしょう

目次

好きなディズニーキャラクターはスティッチです。とらりんです。

さてさて、今回は大変便利なcssプロパティ、clip-pathについて。

まだあまり使ってない方はぜひ覚えて帰ってください。

clip-pathの基本

要素の一部分だけを表示、それ以外の部分は非表示にするcssプロパティ。

クリッピング領域を指定して、その領域内は表示、領域外は非表示にします。

Photoshopでのマスクがcssでできるという感じです。

MDNでの説明はこちら。
https://developer.mozilla.org/ja/docs/Web/CSS/clip-path

そしてここが重要、各ブラウザでのサポート状況はというと。
https://caniuse.com/css-clip-path
IE以外はほぼ全てサポートされています。
という事はもう使ってもよいのではないでしょうか。
IEを開くとEdge使った方がいいよ!と言われますし。

clip-pathの構文、値

構文


以下でご紹介する値を一つ、または組み合わせて指定します。

clip-source

SVGのclipPath要素を参照するURL

basic-shape

基本シェイプを定義する値

inset() 矩形(四角形)を定義
circle() 正円形を定義
ellipse() 楕円形を定義
polygon() 多角形を定義
path() SVGのパスで図形を定義。サポートしていないブラウザも有り。

geometry-box

basic-shapeと共に指定、または単独で指定。

以下の値のうち一つだけ指定可能。

margin-box マージンボックス(マージンの縁に囲まれたシェイプ)を参照ボックスとして使用
padding-box パディングボックス(パディングの縁に囲まれたシェイプ)を参照ボックスとして使用
border-box 境界ボックス(境界の外側の縁で定義されるシェイプ)を参照ボックスとして使用
content-box コンテンボックス(コンテンツの外側の縁で囲まれたシェイプ)を参照ボックスとして使用
fill-box オブジェクトの境界ボックスを参照ボックスとして使用
stroke-box ストロークの境界ボックスを参照ボックスとして使用
view-box 最も近いSVGのビューポートを参照ボックスとして使用

none

初期値。クリッピングパスは作成されません。

basic-shape:基本シェイプでのクリッピング方法

基本となるbasic-shapeを使ったクリッピング方法についてみていきます。

html、基本のcssは以下の通りです。クリッピングの対象要素は色を付けた四角形等、なんでもよいのですが、今回は画像を使用します。

切り抜いた箇所が分かりやすいように背景に色を付けています。


inset()

矩形(四角形)を定義します。つまり四角形で対象要素を切り抜きます。角丸の指定も可能です。
inset( length [ round ] )

length 要素の端からの距離の値。%も指定可能。上下左右を個別に指定することも可能。margin等のショートハンドと同じように指定。
round 角丸にする半径の値。border-radiusのショートハンドと同じように指定。

上下左右から20pxの距離で切り抜いた例がこちら。


上下左右から20pxの距離で切り抜き、角丸を20pxに設定した例がこちら。


circle()

正円形を定義します。まん丸に切り抜くことができます。
circle( shape-radius [at position ] )

shape-radius 正円の半径を単位付きの値。%も指定可能。
at position 円の中心の位置。初期値はcenter。

円の半径は60px、中心をcenterに設定した例がこちら。


円の半径は60px、中心をx軸60px、y軸60pxに設定した例がこちら。


左上にフィットした位置だとx軸y軸とも0にしたくなりますが、中心の位置を設定するのでこのようになります。
※分かりやすいように画像を拡大しています

ellipse()

楕円形を定義します。楕円形のクリッピングを作成します。
ellipse( shape-radius [at position ] )

shape-radius 幅と高さの値。%も指定可能。
at position 円の中心の位置。初期値はcenter。

楕円のサイズは幅100px高さ80px、中心をcenterに設定した例がこちら。


楕円のサイズは縦横とも50%、中心位置を省略した(つまり初期値centerが適用される)例がこちら。


polygon()

多角形を定義します。様々な形の矩形に切り抜くことができます。
polygon( [fill-rule,] x1 y1,x2 y2, ・・・ )

fill-rule 塗り潰しの指定。
nonzero:全面(初期値)
evenodd:領域が囲まれている線の本数が奇数の場合は塗り潰す。偶数の場合は塗らない
x1 y1,x2 y2・・・ 多角形の各頂点を、x座標y座標をスペース区切りでペアとし、カンマ区切りで指定

三角形で切り抜いた例がこちら。


六角形で切り抜いた例がこちら。頂点の位置は時計回りになっています。


星形で切り抜いた例がこちら。


ジェネレーター

Clippy - CSS clip-path maker –
https://bennettfeely.com/clippy/
直感的な操作で簡単にclip-pathのcssを生成してくれるオンラインサービスです。

右側のシェイプを選び、図の頂点を調整すると下の方にコードが生成されます。

これをコピー&ペーストするだけでOK。

サイズは変更できますし、カスタムシェイプも作成可能、画像も指定できるという親切設計。

ありがたく使わせてもらっています。

まとめ

いかがでしたか。

とっても便利なclip-path。その奥深さにまだまだ把握しきれていない部分もあるので、これからもっと勉強して活用していきたいと思っています。皆様もぜひ、お試しください。

参考記事

https://www.webdesignleaves.com/pr/css/css_clip_path.html

https://programmercollege.jp/column/6070/

ショップアイズは大阪のWeb制作会社「アイズオブシー」が運営する
Shopify(ショッピファイ)専門のEC構築サービスです。
Shopify(ショッピファイ)の構築・運用にお困りの場合は気軽に相談ください。

お問い合わせ・ご相談はこちら

Shopifyの構築・運用サポートは

Shopify専門の
ショップアイズへ
お任せください

Shopifyの制作に
ついて相談する

イメージイラスト