CSSでサブナビゲーションメニュー(ドロップダウン)を作成する方法
CSSだけで実装できる、ドロップダウン式のサブナビゲーションメニューを備えたナビゲーションバーのコード例をご紹介します。親メニューにマウスカーソルを重ねると、画面幅いっぱいにサブメニューが横並びで展開される仕組みです。
コード例
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style>
body {
font-family: Arial, Helvetica, sans-serif;
margin: 0;
}
nav {
overflow: hidden;
background-color: rgb(0, 52, 73);
}
nav .links {
float: left;
font-size: 16px;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
.subnav {
float: left;
overflow: hidden;
}
.subnav .sub-btn {
font-size: 16px;
border: none;
outline: none;
color: white;
padding: 14px 16px;
background-color: rgb(0, 109, 67);
margin: 0;
}
nav .links:hover,
.subnav:hover .sub-btn {
background-color: rgb(101, 219, 255);
color: black;
font-weight: bolder;
}
.sub-content {
display: none;
position: absolute;
left: 0;
background-color: rgb(0, 156, 83);
width: 100%;
z-index: 1;
}
.sub-content a {
float: left;
color: white;
text-decoration: none;
}
.sub-content a:hover {
background-color: #eee;
color: black;
}
.subnav:hover .sub-content {
display: block;
}
</style>
</head>
<body>
<nav>
<a class="links" href="#">Home</a>
<a class="links" href="#">Contact</a>
<a class="links" href="#">About Us</a>
<a class="links" href="#">More Info</a>
<div class="subnav">
<button class="sub-btn">Our Social Media</button>
<div class="sub-content">
<a class="links" href="#">Facebook</a>
<a class="links" href="#">Twitter</a>
<a class="links" href="#">LinkedIn</a>
<a class="links" href="#">Instagram</a>
</div>
</div>
</nav>
</body>
</html>
出力結果
上記のコードを実行すると、次のようなナビゲーションバーが表示されます。

ドロップダウンボタンにマウスをホバーすると、サブメニューが展開表示されます。

仕組みのポイント
- .sub-content:初期状態では
display: noneにより非表示にしています。 - .subnav:hover .sub-content:
display: blockへ切り替えることで、親要素にホバーした瞬間だけサブメニューを表示します。JavaScript不要の純CSS実装です。 - position: absolute / left: 0 / width: 100%:サブメニューを画面幅いっぱいに広がる全幅タイプのドロップダウンにしています。
- z-index: 1:ページの他のコンテンツより手前にサブメニューを重ねて表示します。
- :hover の背景色変更:リンクやボタンのホバー時に背景色・文字色を変え、視覚的なフィードバックを与えています。
-
CSSでチャットメッセージを作成する方法をわかりやすく解説
CSSを使えば、LINEやMessengerのようなチャットメッセージ画面を簡単に作成できます。この記事では、プロフィール画像・吹き出し・タイムスタンプ付きのチャットUIを実装する方法を、実際のコード例とともに解説します。 コード例 以下は、CSSでチャットメッセージを作成するための完全なコードです。 <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <s
-
CSSだけで作る!レスポンシブ対応のセクションカウンターの実装方法
CSSを使えば、JavaScriptに頼ることなく、ダウンロード数やパートナー数などの統計情報を視覚的にアピールする「セクションカウンター」を簡単に作成できます。ここでは、Font Awesomeのアイコンと組み合わせて、レスポンシブ対応のセクションカウンターを実装する方法を解説します。 実装コード例 <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <l