本文へスキップ
HTML / CSS 入門 CSS hover transition

hover と transition を使ってみよう

更新日:2026-08-02

前のページでは、

  • レスポンシブデザイン
  • スマホ対応
  • メディアクエリ

を学びました。

今回は、

  • マウスを乗せたときの変化
  • なめらかなアニメーション

を作ってみます。

Webサイトらしい「動き」が少しずつ増えていきます。


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

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

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

hover とは?

hover は、

マウスカーソルが乗った状態

を表します。

例えば、

  • ボタンの色を変える
  • 少し拡大する
  • 透明度を変える

などができます。


ボタンを作ってみよう

まずは、body の中へ以下を追加してください。

<a
  href="#"
  class="button"
>
  ボタンです
</a>

例えば、

<body>

  <div class="card">

    ...

    <a
      href="#"
      class="button"
    >
      ボタンです
    </a>

  </div>

</body>

のように追加します。


CSSを書いてみよう

次に、style.css の下へ追加してください。

.button {
  display: inline-block;

  margin-top: 20px;
  padding: 12px 24px;

  background-color: #2563eb;
  color: white;

  border-radius: 8px;

  text-decoration: none;

  transition: 0.3s;
}

.button:hover {
  background-color: #1d4ed8;
}

保存してブラウザを確認してください。


マウスを乗せてみよう

ボタンへマウスを乗せると、

色が変化

するはずです。

これが hover です。


.button:hover

.button:hover

は、

button にマウスが乗った状態

を意味しています。



transition とは?

今回、

transition: 0.3s;

を書いています。

これは、

変化をなめらかにする

設定です。


transition を消してみよう

試しに、

transition: 0.3s;

を消してみてください。

色変化が一瞬になるはずです。


transition があると自然になる

transition を使うことで、

ふわっと変化

するようになります。

現在のWeb制作では非常によく使われています。



display: inline-block

今回、

display: inline-block;

を書いています。

これは、

aタグを「箱」のように扱えるようにする

ための設定です。


何が問題なの?

a タグは、最初は「文章の一部」のような扱いになっています。

例えば、

<a href="#">リンク</a>

は、普通の文字に近い扱いです。

そのため、そのままだと、

  • width
  • height
  • padding

などが思った通り効かないことがあります。


inline のイメージ

通常の a タグは、

文章の途中の文字

のような扱いです。

例えば、

こんにちは Google です

の「Google」の部分に近いイメージです。


inline-block にすると?

display: inline-block;

を書くと、

  • 文字のようにも扱えるし、
  • 箱のようにも扱える

状態になります。

そのため、

  • padding
  • width
  • height
  • background-color

などが扱いやすくなります。



なぜ block ではなく inline-block なの?

例えば、

display: block;

にすると、

横幅いっぱいを使う要素

になります。

そのため、ボタンが横に大きく広がることがあります。


block のイメージ

block は、

  • div
  • h1
  • p

などと同じような表示になります。

つまり、

1行を丸ごと使う

イメージです。


inline-block のイメージ

一方、

display: inline-block;

は、

  • 文字サイズに近い幅のまま、
  • 箱として扱える

状態です。

そのため、

ボタンサイズが内容に合わせて自然になる

というメリットがあります。


実際に試してみよう

例えば、

display: inline-block;

を、

display: block;

へ変更してみてください。

ボタンが横幅いっぱいに広がるはずです。



ボタンデザインでよく使われる

a タグは本来リンクですが、

実際のWeb制作では、

リンクをボタン風にする

ことが非常によくあります。

そのため、

display: inline-block;

がよく登場します。


今は「ボタン化するためによく使う」でOK

最初は、

  • display: inline-block;
  • を書くと、
  • aタグをボタンっぽく扱いやすくなる

くらいの理解で十分です。

display は非常に奥が深いため、少しずつ慣れていきましょう。


text-decoration: none;

通常、a タグには下線があります。

text-decoration: none;

を書くことで、下線を消しています。


border-radius

border-radius: 8px;

は、角を丸くしています。

現在のWeb制作では、角丸デザインが非常によく使われています。


hover と transition は定番表現

hover や transition は、

  • ボタン
  • メニュー
  • カード
  • 画像

など、さまざまな場所で使われています。

例えば、

マウスを乗せると少し明るくなる

などもよくある表現です。



少し動くだけでも印象が変わる

最初は、

hoverで色が変わる

くらいでも十分です。

しかし、この小さな変化だけでも、

Webサイトっぽさ

がかなり増えます。


実際に数字を変えてみよう

例えば、

transition: 1s;

にすると、かなりゆっくり変化します。

逆に、

transition: 0.1s;

にすると、かなり速くなります。

実際に変更して試してみましょう。


「少しずつ試す」が大切

HTML/CSS 学習では、

  • 色を変える
  • 数字を変える
  • hover を追加する

などを試しながら、

どう変化するか

を見ることが非常に重要です。



今回学んだこと

今回学んだことは、

  • hover
  • transition
  • display
  • inline-block

などです。

特に、

hover + transition

は、現在のWeb制作で非常によく使われています。


次のページでは

次のページでは、

  • Google Fonts
  • フォント変更
  • デザインの雰囲気を変える方法

などを学んでいきます。

少しずつ「デザインらしさ」が増えていきます。