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


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

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


単位は”deg”です。

■html


<div><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軸も斜めにすると思ってた以上に要素に高さが出ました プロジェクトμ ブレーキパッド NS-C NSC 1台分 セドリック CY31・YY31(ABS無) 91/6~ プロジェクトミュー。

ここからは平行四辺形です アクシストリート (XC125E:SE53J) マフラー 2ピースリングエンド ステンレスマフラー バーテックス VERTEX アクシストリート マフラー。
今回は上下(Y軸)は横にまっすぐにしたいので左右(X軸)だけを斜めにします。
X軸のみ
transform:skewX(15deg);
Y軸のみ
transform:skewY(15deg);

DEMO

できました。
次は横に並べてみます アルパインスター 2015015-237-11 TECH5 ブーツ ホワイト/ブルー/レッド 赤 11 (29.5cm)。

■html


<ul>
 <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>
 <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);
}

画像の幅が足りません SHARK SPARTAN LORENZO Shark WHITE YAMAHA ロレンソ フルフェイスヘルメット Q1C-LIK-Y02-W01 Q1C-LIK-Y02-M01 Q1C-LIK-Y02-L01 Q1C-LIK-Y02-X01 S~XLサイズ。
更にscaleで拡大します R&G アールアンドジー ガード・スライダー クラッシュガード・プロテクター - エアロ(Aero) スタイル【Crash Protectors - Aero Style】■ グラディウス650。
※あらかじめ大きめの画像を使用することをオススメします

■CSS


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

DEMO

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