ドロップダウンメニュー付きヘッダーを作る方法【HTML/CSS/JavaScript・サンプルコード付き】
ヘッダー
ドロップダウンメニュー付きヘッダーを作る方法
ドロップダウンメニュー付きヘッダーを作る方法を紹介します。ヘッダー内のメニューをクリックすると、関連する項目を一覧表示できるドロップダウンメニューを実装します。通常時はヘッダーをすっきりと見せながら、必要なタイミングだけメニューを展開できるため、多くのWebサイトで採用されているレイアウトです。
このサンプルでは、HTML、CSS、JavaScriptを使って、クリックで開閉できるドロップダウンメニュー付きヘッダーを作成します。メニューをクリックすると子メニューが表示され、もう一度クリックすると閉じるシンプルな構成です。JavaScriptによる開閉処理を採用しているため、初心者でも動作の仕組みを理解しやすい内容になっています。
メニュー名、子メニューの項目、背景色、文字色、余白、角丸などは自由に変更できます。企業サイト、サービスサイト、ブログ、ポートフォリオなど、階層メニューを分かりやすく整理したいWebサイトのベースとして利用できます。
コードについて
本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項
本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
コードをコピーして使おう!
<!DOCTYPE html>
<html lang="ja">
<head>
<!-- 文字コード -->
<meta charset="UTF-8">
<!-- 表示幅を端末に合わせる -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- ページタイトル -->
<title>ドロップダウンメニュー付きヘッダー</title>
<!-- CSSファイルを読み込み -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- ドロップダウンメニュー付きヘッダー -->
<header class="dropdown-menu-header_header">
<!-- サイト名 -->
<a class="dropdown-menu-header_logo" href="#">
Sample Site
</a>
<!-- ナビメニュー -->
<nav class="dropdown-menu-header_nav" aria-label="メニュー">
<a class="dropdown-menu-header_link" href="#">ホーム</a>
<div class="dropdown-menu-header_item">
<button class="dropdown-menu-header_button" type="button" id="dropdown-menu-header-button">
サービス ▼
</button>
<div class="dropdown-menu-header_menu" id="dropdown-menu-header-menu">
<a href="#">Web制作</a>
<a href="#">Web開発</a>
<a href="#">保守・運用</a>
</div>
</div>
<a class="dropdown-menu-header_link" href="#">ブログ</a>
<a class="dropdown-menu-header_link" href="#">お問い合わせ</a>
</nav>
</header>
<!-- JavaScriptファイルを読み込み -->
<script src="script.js"></script>
</body>
</html>
/* ページ全体 */
body{
margin:0; /* ページ外側の余白をなくす */
background:#ffffff; /* 背景色 */
font-family:sans-serif; /* フォント */
}
/* ヘッダー全体 */
.dropdown-menu-header_header{
display:flex; /* 要素を横並びにする */
align-items:center; /* 縦方向を中央に揃える */
justify-content:space-between; /* 左右に配置する */
min-height:72px; /* ヘッダーの高さ */
padding:0 24px; /* 左右の内側余白 */
background:#ffffff; /* ヘッダー背景色 */
border-bottom:1px solid #e5e7eb; /* 下線 */
}
/* サイト名 */
.dropdown-menu-header_logo{
color:#1e3a8a; /* 文字色 */
font-size:22px; /* 文字サイズ */
font-weight:800; /* 文字太さ */
text-decoration:none; /* 下線を消す */
white-space:nowrap; /* 折り返しを防ぐ */
}
/* ナビメニュー */
.dropdown-menu-header_nav{
display:flex; /* メニューを横並びにする */
align-items:center; /* 縦方向を中央に揃える */
gap:28px; /* メニュー同士の間隔 */
}
/* 通常リンク */
.dropdown-menu-header_link{
color:#334155; /* 文字色 */
font-size:14px; /* 文字サイズ */
font-weight:700; /* 文字太さ */
text-decoration:none; /* 下線を消す */
}
/* ドロップダウンの親要素 */
.dropdown-menu-header_item{
position:relative; /* 子メニューの基準位置にする */
}
/* ドロップダウンボタン */
.dropdown-menu-header_button{
padding:0; /* ボタン内側余白 */
border:none; /* 枠線を消す */
background:none; /* 背景を消す */
color:#334155; /* 文字色 */
font-size:14px; /* 文字サイズ */
font-weight:700; /* 文字太さ */
cursor:pointer; /* カーソルを指マークにする */
}
/* ドロップダウンメニュー */
.dropdown-menu-header_menu{
display:none; /* 初期状態では非表示 */
position:absolute; /* 親要素を基準に配置する */
top:36px; /* ボタンから下への距離 */
left:0; /* 左位置 */
min-width:180px; /* メニューの最小幅 */
padding:8px 0; /* 上下の内側余白 */
border:1px solid #dbe3ef; /* 枠線 */
border-radius:10px; /* 角丸 */
background:#ffffff; /* 背景色 */
box-shadow:0 10px 24px rgba(15,23,42,0.08); /* 影 */
}
/* 表示中のドロップダウンメニュー */
.dropdown-menu-header_menu.is-open{
display:block; /* メニューを表示する */
}
/* ドロップダウン内リンク */
.dropdown-menu-header_menu a{
display:block; /* リンクを横幅いっぱいにする */
padding:10px 16px; /* 内側余白 */
color:#334155; /* 文字色 */
font-size:14px; /* 文字サイズ */
text-decoration:none; /* 下線を消す */
white-space:nowrap; /* 折り返しを防ぐ */
}
/* ドロップダウン内リンクに触れた時 */
.dropdown-menu-header_menu a:hover{
background:#f8fafc; /* ホバー時の背景色 */
}
// ドロップダウンボタンを取得
const dropdownMenuHeaderButton = document.getElementById('dropdown-menu-header-button');
// ドロップダウンメニューを取得
const dropdownMenuHeaderMenu = document.getElementById('dropdown-menu-header-menu');
// ボタンをクリックしたらメニューの表示を切り替える
dropdownMenuHeaderButton.addEventListener('click', function(){
dropdownMenuHeaderMenu.classList.toggle('is-open');
});
ファイル構成と設置方法
このサンプルはHTML、CSS、JavaScriptの3つのファイルで構成されています。HTMLファイルにヘッダーとドロップダウンメニューの構造を記述し、CSSファイルでレイアウトやメニューのデザインを設定します。JavaScriptファイルでは、メニューをクリックしたときにドロップダウンメニューを開閉する処理を行います。
sample/
├── index.html
├── style.css
└── script.js
ファイルを配置したらindex.htmlをブラウザで開いて動作を確認します。「サービス ▼」をクリックするとドロップダウンメニューが表示され、もう一度クリックすると閉じます。メニュー項目はHTMLから追加・変更でき、文字色、背景色、余白、角丸、影などのデザインはstyle.cssから調整できます。
ドロップダウンメニュー付きヘッダーを作る方法【HTML/CSS/JavaScript・サンプルコード付き】
コメント