CSSの擬似クラスを徹底解説!hoverやfocusで動くホームページ作成
生徒
「ホームページのボタンにマウスをのせた時、色が変わるようにしたいです!」
先生
「それは擬似クラスという便利な機能を使えば解決できますよ。」
生徒
「ギジクラス?なんだか難しそうな名前ですね。プログラミング初心者でも使えますか?」
先生
「大丈夫です。特定の状態になった時だけスタイルを変える、という命令を追加するだけです。基本的な使い方を順番に見ていきましょう!」
1. 擬似クラスとは何かの基本を知ろう
擬似クラス(ぎじくらす)とは、HTMLの要素が「特定の状態」になった時だけ、CSSのデザインを適用させるための仕組みです。例えば、ただのボタンではなく「マウスがのっている状態のボタン」や、入力欄をクリックして「文字を打てる状態の入力欄」といった、タイミングに合わせたデザイン変更ができます。
通常、CSSは「この文字を赤くする」という固定のデザインを指示しますが、擬似クラスを使うと「もしマウスがのったら青くする」という条件付きの指示が可能になります。これにより、ホームページを閲覧しているユーザーの操作に反応する、インタラクティブ(対話型)で使いやすいサイトを作ることができるようになります。パソコンを触り始めたばかりの方でも、仕組みさえ分かればすぐに使いこなせるようになりますよ。
2. マウスをのせた時に反応するhoverの使い方
擬似クラスの中で最も有名で、頻繁に使われるのが「hover(ホバー)」です。これは、パソコンのマウスカーソル(画面上で動く矢印)を、ボタンやリンクなどの要素の上に重ねた瞬間にデザインを切り替える命令です。
書き方はとても簡単で、デザインしたい対象の名前のすぐ後ろに、コロン(:)をつけて「hover」と書くだけです。これだけで、ユーザーがどこを操作しようとしているのかが視覚的に伝わるようになります。スマホの場合は指で触れた瞬間に反応することが多いです。まずはボタンの色を変えるサンプルで試してみましょう。
<style>
.sample-button {
background-color: #0d6efd;
color: white;
padding: 10px 20px;
border: none;
border-radius: 5px;
transition: 0.3s; /* 変化をなめらかにする */
}
/* マウスをのせた時のデザイン */
.sample-button:hover {
background-color: #003366;
cursor: pointer;
}
</style>
<button class="sample-button">
マウスをのせてみて!
</button>
ブラウザ表示
3. 入力欄に注目した時に役立つfocusの使い方
次に覚えたいのが「focus(フォーカス)」です。これは、入力フォームなどで文字を打ち込むためにクリックされた状態や、キーボード操作で選択された状態を指します。お問い合わせフォームなどで「今、どの項目を入力しているか」を分かりやすくするために欠かせない設定です。
プログラミング未経験の方にとって、フォームの入力は少し面倒に感じる作業かもしれませんが、focusを使って入力中の枠の色を変えたり、太くしたりすることで、ユーザーの入力ミスを減らすことができます。これを「アクセシビリティ(使いやすさ)」の向上と言います。細かい気配りが、良いホームページには欠かせません。
<style>
.input-field {
width: 250px;
padding: 8px;
border: 2px solid #ccc;
outline: none; /* 標準の青い枠線を消す */
}
/* クリックして入力状態になった時 */
.input-field:focus {
border-color: #198754;
background-color: #e2f3eb;
}
</style>
<div class="p-3">
<label>お名前:</label>
<input type="text" class="input-field" placeholder="ここをクリックしてね">
</div>
ブラウザ表示
4. クリックした瞬間だけ反応するactiveの使い方
「active(アクティブ)」は、マウスでクリックして指を離すまでの、ほんの一瞬の状態を指します。ボタンを押し込んだような感覚を出すために使われます。実物のスイッチを押した時のような「カチッ」とした手応えを画面上で表現できるので、ユーザーにとって心地よい操作感を生み出します。
先ほど紹介したhoverと組み合わせて使うことが多いです。「マウスをのせて色が変わる(hover)」「クリックすると少し沈む(active)」という二段階の変化をつけることで、非常にリアルなボタンが出来上がります。初心者のうちは、この複数の状態を組み合わせる練習をしてみると、CSSの理解がぐんと深まります。
5. リンクの訪問済みを確認するvisitedの使い方
「visited(ビジテッド)」は、インターネットで検索をしている時によく見かける機能です。一度クリックして読んだことがあるサイトのリンクだけ、文字の色が変わっていることがありますよね?あれがvisitedの力です。
ユーザーがどのページを読んだのかを一目で判断できるようにすることは、サイト内を回遊してもらうために重要です。ただし、プライバシーの観点から、visitedで変更できるのは「色」など一部のスタイルに限定されています。何気なく使っている機能ですが、実はこのような擬似クラスが裏側で働いているのです。
6. 画像をマウスオーバーでズームさせる演出
擬似クラスは文字やボタンだけでなく、画像にも使えます。例えば、写真の上にマウスをのせた時に、画像が少しだけ大きくなるような演出です。これはネットショップの商品一覧などでよく使われるテクニックで、商品に興味を持ってもらうための工夫の一つです。
この時、画像の枠からはみ出さないように設定を工夫すると、非常に綺麗に見えます。ここでは「transform」という命令と「hover」を組み合わせます。画像の一部が強調されることで、より動的な印象を与えることができます。
<style>
.image-container {
width: 200px;
height: 150px;
overflow: hidden; /* はみ出しを隠す */
border-radius: 10px;
}
.zoom-img {
width: 100%;
height: 100%;
object-fit: cover;
transition: 0.5s;
}
/* マウスをのせた時に拡大 */
.zoom-img:hover {
transform: scale(1.2);
}
</style>
<div class="image-container shadow">
<img src="/img/sample150-100.jpg" class="zoom-img">
</div>
<p>画像の上にマウスを移動してみて!</p>
ブラウザ表示
7. リストの特定番目だけを指定するnth-child
擬似クラスには、状態だけでなく「場所」を指定できるものもあります。その代表が「nth-child(バース・チャイルド)」です。例えば、表形式のリストで「2番目の項目だけ色をつけたい」とか「奇数番目だけ背景をグレーにしたい」といった場合に活躍します。
これを使えば、一つ一つのHTMLタグに名前をつけなくても、自動的に順番を数えてデザインを当ててくれます。特に、たくさんのデータが並ぶ一覧画面では、一行おきに色を変えることで、目が疲れにくく読みやすいデザインを簡単に作ることができます。これを「シマシマ(ゼブラ)デザイン」などと呼んだりします。
<style>
.list-group {
list-style: none;
padding: 0;
}
.list-item {
padding: 10px;
border-bottom: 1px solid #ddd;
}
/* 奇数(odd)番目の項目だけ背景色をつける */
.list-item:nth-child(odd) {
background-color: #f9f9f9;
}
/* マウスをのせた行を強調する */
.list-item:hover {
background-color: #fff3cd;
}
</style>
<ul class="list-group border rounded">
<li class="list-item">1番目のデータ</li>
<li class="list-item">2番目のデータ</li>
<li class="list-item">3番目のデータ</li>
<li class="list-item">4番目のデータ</li>
</ul>
ブラウザ表示
8. 擬似クラスを使う時の注意点とコツ
擬似クラスを使いこなすために大切なのは、記述の「順番」です。例えば、同じ要素に複数の擬似クラスを設定する場合、基本的には「リンクの状態(link、visited)」→「操作の状態(hover、active)」の順で書くのがルールとなっています。これを守らないと、後から書いたデザインに上書きされて、思った通りに動かないことがあります。
また、擬似クラスは「:」一つで書きますが、似たような言葉に「::」と二つ重ねる擬似要素というものもあります。初心者のうちは間違えやすいですが、擬似クラスはあくまで「要素の状態」を指すものだと覚えておきましょう。まずは最も便利なhoverから使い始めて、少しずつバリエーションを増やしていくのが、挫折せずにプログラミングを続けるコツです。色々なサイトの動きを見て、どんな擬似クラスが使われているか想像してみるのも楽しいですよ!
【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー
「魅せる力」をコードで実現。CSS3でモダンWebデザインのプロトタイピングを。
本講座では、単に色を変えるだけではなく、「ユーザーを迷わせないUIデザイン」と「崩れないレイアウト設計」の本質を学びます。最新のCSS3とモダンなレイアウト手法を通じて、プロの現場で通用する「美しさと機能性を両立した実装力」を最短距離で習得します。
具体的なワークショップ内容と環境
【つくるもの】
HTMLで作成した骨組みに対し、商用サイトでも採用される「スタイリッシュなカード型UI」や「レスポンシブなナビゲーション」を構築します。色の選定基準や余白(ホワイトスペース)の黄金比など、デザインの理論をコードに落とし込む工程を体験してください。
【開発環境】
フロントエンド開発の標準であるVisual Studio Code (VS Code)を継続使用。CSSの記述を効率化するプラグインや、ブラウザのデベロッパーツール(検証機能)を駆使して、リアルタイムでデザインを微調整するプロのワークフローを再現します。
この60分で得られる3つの技術資産
要素の横並びや中央揃えを自由自在に操り、どんなデバイスでも崩れないレスポンシブな配置術を完全理解します。
後から修正しやすい「壊れにくいコード」の書き方を伝授。プロの現場で必須となる命名規則の考え方を学びます。
画像の最適化や軽量な装飾技法など、ページの表示速度を落とさずに高級感のある演出を行うテクニックを習得します。
※本講座は、HTMLの基礎を終えた後のステップアップ講座です。Webデザイナー、UIデザイナー、フロントエンドエンジニアへの道を切り開く「魅せる技術」を、モクモク独自のパーソナル指導で着実に定着させます。
リラックスしながら、学ぶことが大切です。しっかりと基礎を理解しましょう!
各回少人数・マンツーマン形式で徹底サポート
このセミナーの詳細・お申し込みはこちら