ロゴ

CSS transformプロパティまとめ:translate・rotate・scaleを理解する

transformは、要素を「動かす」「回す」「拡大・縮小する」など、2D・3D変形を行うためのCSSプロパティです。アニメーションや視覚的な演出でもよく使われます。

1. transformで使える主な値一覧

translate():要素を指定した距離だけ移動させる(位置の変更)。

rotate():要素を回転させる。角度はdeg(度)で指定。

scale():要素を拡大・縮小する。比率で指定。

skew():要素を傾ける(斜めに歪ませる)。

matrix():変形を行列でまとめて指定(複雑な操作向け)。

perspective():3D変形時の奥行きの見え方を指定。

translateX() / translateY() / translateZ():それぞれX軸・Y軸・Z軸方向に移動。

rotateX() / rotateY() / rotateZ():各軸を中心に回転。3D回転で使用。

scaleX() / scaleY() / scaleZ():各軸方向に個別で拡大・縮小。

MDN:transform

2. よく使う3つのプロパティを深掘り

translate(移動)

要素をX軸・Y軸方向に移動させる。
位置を指定する単位はpx、%、またはvw/vhなどが使える。

.box {
   transform: translate(50px, 100px); /* 右へ50px、下へ100px */
}
  • 1つの値だけ指定した場合:translate(50px) → X軸方向にだけ移動。
  • %を使うと、要素自身のサイズを基準に移動します。

 rotate(回転)

要素を中心点(transform-origin)を軸に回転させます。

.box {
   transform: rotate(45deg); /* 時計回りに45度回転 */
}
  • 負の値を指定すると反時計回りに回転。例:rotate(-30deg)
  • デフォルトの回転軸は要素の中心(変更はtransform-originで指定可能)

transform-originの例

.box {
   transform-origin: top left; /* 左上を基準に回転 */
}

scale(拡大・縮小)

要素を拡大・縮小します。比率を数値で指定します。

.box {
   transform: scale(1.5); /* 幅・高さを1.5倍に拡大 */
}
  • scale(2) → 2倍(200%)
  • scale(0.5) → 半分(50%)
  • scaleX(2) や scaleY(0.5) のように、軸ごとに指定可能。

3. 複数のtransformを同時に使う

複数の変形を空白区切りで連続指定できます。

.box {
   transform: translateX(50px) rotate(45deg) scale(1.2);
}

上記は、「右に50px移動 → 45°回転 → 1.2倍拡大」の順で適用されます。

ポイントtransformは「見た目を変えるだけ」であり、実際のレイアウト(位置や余白計算)には影響しません。
そのため、他の要素の配置を崩さずに視覚的な動きをつけるのに最適です。

プロフィール画像

ワタナベ / BULK

熊本を拠点にフリーのフロントエンドエンジニアとして活動しています。
Next.jsを使った開発をしてみたくて当ブログを作成しました。
日々の発見を気ままに更新していきます。

  • X(旧Twitter)のロゴ
  • X(旧Twitter)のロゴ

記事一覧へ戻る