本文へスキップ
HTML / CSS 基礎 CSS transform アニメーション

transform を使った動きの表現

更新日:2026-08-02

前のページでは、

  • hover
  • focus
  • active
  • disabled

など、ユーザー操作に反応するCSSを学びました。

今回は、

要素を動かすCSS

を学びます。

Webサイトでは、

  • 少し浮き上がるボタン
  • ふわっと拡大するカード
  • 横にスライドする画像
  • 回転するアイコン

など、さまざまな動きが使われています。

その中心になるのが、

transform

です。


今回使用するファイル構成

この回では、次のファイルを使用します。

html-practice/
├── index.html
└── css/
    └── style.css

transform とは?

transform は、

要素を変形するCSS

です。

例えば、

  • 移動
  • 拡大
  • 縮小
  • 回転

などができます。


translate

translate は、要素を移動します。

transform: translateX(20px);

これは、

右へ20px移動

です。


translateY

縦方向へ移動する場合は translateY を使います。

transform: translateY(-10px);

これは、

上へ10px移動

です。


hover と組み合わせる

例えば、カードを少し浮かせることができます。

<div class="card">
  カードです
</div>
.card {
  width: 300px;
  padding: 24px;
  border-radius: 12px;
  background-color: white;
  box-shadow: 0 10px 20px rgba(0,0,0,0.08);

  transition: 0.3s;
}

.card:hover {
  transform: translateY(-8px);
}

なぜ「上へ移動」で浮いて見えるの?

人間は、

上へ動く = 浮いた

と感じやすいからです。

さらに、

box-shadow

を組み合わせると、より立体感が出ます。


scale

scale は、拡大・縮小です。

transform: scale(1.1);

これは、

1.1倍に拡大

です。


ボタンを少し大きくする

.button {
  transition: 0.3s;
}

.button:hover {
  transform: scale(1.05);
}

ほんの少し大きくするだけでも、

操作できる感

が強くなります。


scale の数字の意味

scale(1)

は元のサイズです。

つまり、

1 = 100%

です。

例えば、

scale(0.5)

なら半分です。

scale(2)

なら2倍です。


rotate

rotate は回転です。

transform: rotate(45deg);

これは、

45度回転

です。

deg は degree(度)です。


アイコンを回転させる

.icon:hover {
  transform: rotate(180deg);
}

最近のWebサイトでは、

  • 矢印
  • メニューアイコン
  • プラスボタン

などでよく使われます。


transform は上書きされる

ここは初心者がかなりつまずきます。

例えば、

transform: translateY(-10px);

のあとに、

transform: scale(1.1);

を書くと、

translateY が消える

という動きになります。


transform はまとめて書く

複数使う場合は、1行にまとめます。

transform: translateY(-10px) scale(1.1);

これで、

  • 上へ移動
  • 拡大

を同時に行えます。


transition と組み合わせる

transform は、transition と組み合わせることが非常に多いです。

.card {
  transition: 0.3s;
}

.card:hover {
  transform: translateY(-8px) scale(1.02);
}

これだけで、かなり「今風」の動きになります。


よくある使い方

実際のWeb制作では、

hover + transform + transition

は大量に使われています。

例えば、

  • カードを浮かせる
  • ボタンを押し込む
  • 画像をズームする
  • アイコンを回転する

などです。


画像をズームする例

<div class="image-box">
  <img src="image.jpg" alt="">
</div>
.image-box {
  overflow: hidden;
  border-radius: 12px;
}

.image-box img {
  width: 100%;
  transition: 0.5s;
}

.image-box:hover img {
  transform: scale(1.1);
}

overflow: hidden が必要な理由

拡大すると、

画像がはみ出す

ことがあります。

そのため、

overflow: hidden;

で、外へはみ出た部分を隠しています。

これはかなりよく使うテクニックです。


まとめ

今回は transform を学びました。

  • translate は移動
  • scale は拡大・縮小
  • rotate は回転
  • transition と組み合わせると自然な動きになる
  • transform は複数まとめて書く