css 疑似クラス hover

:hover

:hover CSS 疑似クラスは、ユーザーのポインタが要素上に置かれたとき(押されていないとき)に、その要素に特別なスタイルを適用します。

1. 構文

:hover 疑似クラスは、他のセレクタの直後に :hover を付けることで使用します。例えば、

selector:hover {
  /* スタイルルール */
}

この疑似クラスは、あらゆる種類のセレクタと共に使用することができます。

2. 使用方法

  • :hover は、リンクだけでなく、すべての可視化された要素に適用できます。
  • :hover の効果は、マウスポインタが要素上に入った瞬間に有効になり、要素から離れた瞬間に無効になります。
  • すべてのユーザーがコンテンツにアクセスできるように、:hover 状態でのみ重要な情報を表示することは避けるべきです。

3. 例

3.1. 基本的なリンクのスタイル

a {
  color: blue;
  text-decoration: none;
}

a:hover {
  color: red;
  text-decoration: underline;
}

この例では、リンクはデフォルトで青色で下線が引かれていませんが、マウスオーバーすると赤色になり下線が引かれます。

3.2. ボタンのホバー効果

button {
  background-color: #4CAF50;
  color: white;
  padding: 15px 32px;
  border: none;
  cursor: pointer;
}

button:hover {
  background-color: #3e8e41;
  box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24), 0 17px 50px 0 rgba(0,0,0,0.19);
}

この例では、ボタンはデフォルトで緑色の背景色を持ちますが、マウスオーバーすると濃い緑色になり、影が追加されます。

4. アクセシビリティに関する注意点

  • ホバー時にのみ重要なコンテンツを表示するインターフェースを作成することは避けてください。キーボードナビゲーションや支援技術を使用しているユーザーにとっては、情報へのアクセスが困難になる可能性があります。
  • :hover 状態のみに依存するのではなく、同じ情報にアクセスするための複数の方法を提供することをお勧めします。

5. ブラウザの互換性

:hover 疑似クラスは、すべての主要なブラウザでサポートされています。

ブラウザ バージョン
Chrome すべて
Firefox すべて
Safari すべて
Edge すべて
Opera すべて

関連情報

Q&A

Q1: :hover を使ってドロップダウンメニューを作成できますか?

A1: はい、:hover を使用してドロップダウンメニューを作成できます。サブメニューをデフォルトで非表示にし、親メニュー項目に :hover を使用してサブメニューを表示します。

Q2: :hover はタッチデバイスで動作しますか?

A2: タッチデバイスでは、:hover の動作は一貫性がありません。一部のデバイスでは、タッチイベントとマウスイベントが類似しているため動作しますが、他のデバイスでは動作しない場合があります。タッチデバイス向けの代替手段としては、:focus 疑似クラスの使用や、JavaScriptによるタッチイベントの処理などが考えられます。

Q3: :hover の効果を遅延させるにはどうすればよいですか?

A3: :hover の効果を遅延させるには、CSSの transition-delay プロパティを使用します。たとえば、transition-delay: 0.5s; とすると、ホバー効果が0.5秒遅延されます。

その他の参考記事:CSS 疑似クラス