要素の変形は「transform」プロパティ
移動や拡大・縮小、回転など横方向(X軸)縦方法(Y軸)奥行き(Z軸)を指定して変形を行う。
ベンダープレフィックスは記載するとゴチャゴチャするので省くため、ここでまとめて記載しておく。
必要なら呪文の如く追加しておくれ。
-webkit-transform: 関数;
-ms-transform: 関数;
transform: 関数;
vendor prefixes: 2021.1 Autoprefixer last 4 version
ちなみに解除する方法は以下。
transform: none;
移動 - translate / translate3d
/* 個別に指定(値はpxや%など) */
transform: translateX(X軸方向の値);
transform: translateY(Y軸方向の値);
transform: translateZ(Z軸方向の値);
/* XY方向まとめて指定(2D) */
transform: translate(X軸方向の値, Y軸方向の値);
/* XYZ方向まとめて指定(3D) */
transform: translate3d(X軸方向の値, Y軸方向の値, Z軸方向の値);
3D系はGPUって言うのを使うらしい。ハード面はからっきしなので説明省略。指定順番はそれぞれ順守する。
回転 - rotate
rotateに使える単位は deg / grad / rad / turn。円一周を基準として、どれだけ回転させるかを指定する。
時計回りで180度回転させるなら回転値は「180deg」となる。負の数だと逆回りになる。各単位は以下のサイトがわかりやすい。
/* 2D回転 */
transform: rotate(回転値);
/* 座標ごとに個別に指定(3D) */
transform: rotateX(X座標の回転値);
transform: rotateY(Y座標の回転値);
transform: rotateZ(Z座標の回転値);
/* XYZ座標まとめて指定(3D。各座標の値は「0〜1」) */
transform: rotate3d(X座標, Y座標, Z座標, 回転値);
正直3D回転まで行うこともそうないかと思うけど。どんなになるか想像つかない・・・
基本的には要素のド真ん中を基準に回転するが、その位置を変更する場合は以下。
/* 初期値は50% 50% 0 */
transform-origin: 値; /* 単体 */
transform-origin: X値 Y値; /* 2D */
transform-origin: X値 Y値 Z値; /* 3D */
- 値・・・数値(px/emなど)、パーセント(%)もしくは「left/right/center/top/bottom」
- X値・・・パーセント(%)もしくは「left/right/center」
- Y値・・・パーセント(%)もしくは「top/bottom/center」
- Z値・・・数値(px/emなど)
拡大・縮小 - scale
値は変形前を1として比率を指定。倍の大きさなら「2」、半分なら「0.5」と言う具合。
/* 個別に指定 */
transform: scaleX(X軸方向の値);
transform: scaleY(Y軸方向の値);
transform: scaleZ(Z軸方向の値);
/* 単一に指定(XとYが同等値) */
transform: scale(値);
/* XY方向まとめて指定(2D) */
transform: scale(X軸方向の値, Y軸方向の値);
/* XYZ軸まとめて指定(3D) */
transform: scale3d(X軸方向の値, Y軸方向の値, Z軸方向の値);
Z軸はぱっと想像出来ないので試しながらが吉。
傾斜(シアー変形) - skew
X、Y方向の2D指定のみ。skewに使える単位は deg / grad / rad / turn 。円一周を基準として、どれだけ回転させるかを指定する。各単位は以下のサイト参照。
/* 単一(X方向のみ) */
transform: skew(X方向の値);
/* X方向、Y方向 */
transform: skew(X方向の値, Y方向の値);