CSS

transform

中級

読み方:トランスフォーム|英語:Transform

要素を移動・回転・拡大縮小するプロパティで、translate, rotate, scale などを指定するよ。いつ使う? ホバー時にボタンを少し大きくしたい(scale)、要素を斜めに傾けたい(rotate)、位置を微調整したい(translate)ときに使うよ。間違いやすいポイント: transformはインライン要素(span, a等)には効かないよ。display: inline-block; を追加しよう。また、複数のtransformを書くときはスペース区切りで1つのプロパティにまとめるよ。

やさしい説明

transformは、要素を移動・回転・拡大縮小するCSSプロパティです。レイアウトに影響を与えずに見た目だけ変えられます。

写真を手で動かしたり、回したり、拡大したりするイメージです。元の場所はそのままで、見た目だけが変わります。

アニメーションとの相性が抜群です。transitionやanimationと組み合わせると、滑らかな動きを作れます。GPUで処理されるので動作も軽いです。

具体例・使い方

/* 移動 */
transform: translateX(100px);  /* 右に100px */
transform: translateY(-50px);  /* 上に50px */

/* 回転 */
transform: rotate(45deg);      /* 45度回転 */

/* 拡大縮小 */
transform: scale(1.5);         /* 1.5倍に拡大 */

/* ホバーで少し大きくなるカード */
.card:hover {
  transform: scale(1.05);
  transition: transform 0.2s;
}

いつ使う?

ホバーエフェクト(カードが少し浮く)、ローディングアニメーション(回転)、スライドイン演出(横から登場)などに使います。

間違いやすいポイント

❌ transformを複数書くと上書きされる

/* ❌ 2つ目が1つ目を上書きしてしまう */
transform: translateX(10px);
transform: rotate(45deg); /* translateXが消える */

/* ✅ 1行にまとめる */
transform: translateX(10px) rotate(45deg);

よくある疑問

Q: transformで要素を中央に配置するには?

A: position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); で親要素の中央に配置できます。

Q: 複数のtransformを同時に使うには?

A: transform: rotate(45deg) scale(1.5); のようにスペースで区切って1行に書きます。別々に書くと後の方で上書きされます。

Q: transformとtransitionの違いは?

A: transformは「変形の種類」、transitionは「変化のアニメーション」です。transform + transition で滑らかな動きになります。

関連用語

📖 関連レッスン

レッスンを見る →

関連ブログ記事

⚠️ 関連するエラー

❓ 関連するQ&A