お仕事のご依頼や採用についてなど、
お気軽にお問い合わせください。

© CREATIVE WEB INC. ALL RIGHTS RESERVED.

BLOG

CSS3のtransformで要素を斜めにしたり平行四辺形に画像をトリミング

2017.09.01TIPS

20170901
斜めにした要素を横並びで配置する機会があったので、CSS3のtransform:rotateで斜めにしたり、平行四辺形に画像をトリミングした備忘録です。

まずは、要素を斜めにしてみます。
斜めにするには
transform:skew(X軸,Y軸);
を使います。
単位は”deg”です。

■html

<div id="slanting01"><a href="#"></a></div>

■CSS

#slanting01{ width:30%; height:100px; background:#FF7373; margin:0 auto; text-align:center; transform:skew(15deg,15deg);}

DEMO

この場合、上下左右が15°の斜めになります。
X軸もY軸も斜めにすると思ってた以上に要素に高さが出ました。

ここからは平行四辺形です。
今回は上下(Y軸)は横にまっすぐにしたいので左右(X軸)だけを斜めにします。
X軸のみ
transform:skewX(15deg);
Y軸のみ
transform:skewY(15deg);

DEMO

できました。
次は横に並べてみます。

■html

<ul id="slanting03"> <li><a href="#"></a></li> <li><a href="#"></a></li> <li><a href="#"></a></li></ul>

■CSS

ul#slanting03 li{ width:150px; height:150px; margin:0 2%; display:inline-block; background:#FDAB75; transform:skewX(30deg);}

DEMO

次、画像を追加してみましょう

■html

<ul id="slanting04"> <li><a href="#"><img src="img/photo01.jpg"></a></li> <li><a href="#"><img src="img/photo01.jpg"></a></li> <li><a href="#"><img src="img/photo01.jpg"></a></li></ul>

■CSS

ul#slanting04 li{ width:150px; height:150px; margin:0 2%; display:inline-block; background:#FDAB75; transform:skewX(30deg);}ul#slanting04 li img{width:100%;}

画像まで平行四辺形に沿って歪みました…。

<li>内をskewX(30deg)で斜めにしているので<img>だけ逆にtransformします。
ついでに<li>にoverflow:hidden;ではみ出た部分は隠します。

■CSS

ul#slanting04 li{ width:150px; height:150px; margin:0 2%; display:inline-block; background:#FDAB75; transform:skewX(30deg); overflow:hidden;}ul#slanting04 li img{ width:100%; transform:skewX(-30deg);}

画像の幅が足りません。
更にscaleで拡大します。
※あらかじめ大きめの画像を使用することをオススメします

■CSS

ul#slanting04 li img{ width:100%; transform:skewX(-30deg) scale(1.6);}

DEMO

これでCSSだけで画像も平行四辺形になりました。
ちなみに、この子は今年の社員旅行で出会った宮島のシカちゃんです。かわいいは正義ですね。