HTML/CSSだけで動くドロワーメニューの作り方
HTML/CSSだけで動くドロワーメニューの作り方を紹介します。このサンプルでは、画面内のボタンをクリックすると左側からドロワーメニューがスライド表示され、「閉じる」ボタンを押すと元の位置へ戻ります。HTML・CSS・JavaScriptだけで実装しているため、特別なライブラリを使わずにシンプルなドロワーメニューを導入できます。
スマートフォン向けのナビゲーションだけでなく、管理画面、会員サイト、サービス紹介ページ、企業サイトなどでも利用しやすい構成です。メニュー項目を縦に並べて表示できるため、画面幅が限られる環境でも操作しやすく、クリック操作だけでメニューの表示・非表示を切り替えられます。左側からスライド表示されるため、現在の画面を維持したままナビゲーションを表示できる点も特徴です。
タイトル、説明文、ボタン名、メニュー項目、リンク先はHTMLから変更でき、CSSでは横幅、背景色、余白、文字サイズ、角丸、影、アニメーション速度などを自由に調整できます。レスポンシブにも対応しているため、スマートフォン・タブレット・PCで利用しやすく、初心者でも導入しやすいドロワーメニューのサンプルとして活用できます。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
デモ
コードをコピーして使おう!
<!DOCTYPE html>
<html lang="ja">
<head>
<!-- 文字コード -->
<meta charset="UTF-8">
<!-- スマートフォン表示対応 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- ページタイトル -->
<title>HTML/CSSだけで動くドロワーメニュー</title>
<!-- CSSファイルを読み込み -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- ドロワーメニュー全体 -->
<div class="basic-drawer-menu_wrap">
<!-- タイトル -->
<div class="basic-drawer-menu_title">
HTML/CSSだけで動くドロワーメニュー
</div>
<!-- 説明文 -->
<p class="basic-drawer-menu_text">
「メニューを開く」をクリックすると、画面左側からドロワーメニューが表示されます。
</p>
<!-- 開閉状態を管理するチェックボックス -->
<input
class="basic-drawer-menu_toggle"
type="checkbox"
id="basic-drawer-menu-toggle">
<!-- メニューを開くボタン -->
<label
class="basic-drawer-menu_open"
for="basic-drawer-menu-toggle">
メニューを開く
</label>
<!-- ドロワーメニュー -->
<div class="basic-drawer-menu_drawer">
<!-- メニュータイトル -->
<div class="basic-drawer-menu_heading">
メニュー
</div>
<!-- ナビゲーション -->
<nav class="basic-drawer-menu_nav">
<a class="basic-drawer-menu_link" href="#">
ホーム
</a>
<a class="basic-drawer-menu_link" href="#">
サービス
</a>
<a class="basic-drawer-menu_link" href="#">
お知らせ
</a>
<a class="basic-drawer-menu_link" href="#">
お問い合わせ
</a>
</nav>
<!-- メニューを閉じるボタン -->
<label
class="basic-drawer-menu_close"
for="basic-drawer-menu-toggle">
閉じる
</label>
</div>
</div>
</body>
</html>
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。
ファイル構成と設置方法
このサンプルはHTMLとCSSの2ファイルで構成されています。HTMLではチェックボックスの状態を利用してドロワーメニューを開閉する仕組みを実装しており、JavaScriptを使用せずに動作します。CSSではレイアウトや配色、スライドアニメーション、レスポンシブ表示を設定しているため、シンプルな構成で導入できます。
sample/
├── index.html
└── style.css
各ファイルの役割
index.htmlはドロワーメニュー全体を構成するファイルです。タイトル、説明文、メニュー項目、開くボタンと閉じるボタンの文字を変更できます。チェックボックスとlabel要素を利用してメニューの開閉を行います。
style.cssはドロワーメニュー全体のデザインを設定するファイルです。横幅、背景色、文字色、余白、角丸、リンクデザイン、スライドアニメーションなどを変更できます。
設置方法・使い方
sampleフォルダへindex.htmlとstyle.cssを配置します。2つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開いてください。「メニューを開く」をクリックすると左側からドロワーメニューが表示され、「閉じる」をクリックすると元の位置へ戻ります。
カスタマイズできる内容
index.htmlではタイトル、説明文、ボタンの文字、メニュー項目、リンク先を変更できます。企業サイトやサービスサイト、ポートフォリオサイトなど用途に合わせて自由に編集できます。
style.cssではドロワーメニューの横幅、背景色、文字色、余白、角丸、リンクデザイン、影、アニメーション速度などを変更できます。画面デザインに合わせて簡単に見た目を調整できます。
数値調整
style.css
max-width:700px;
全体の最大横幅です。値を大きくすると全体が横へ広がり、小さくするとコンパクトになります。
padding:32px;
コンテンツ全体の内側余白です。値を大きくすると余白が広がり、小さくすると詰まった表示になります。
width:320px;
ドロワーメニューの横幅です。値を大きくすると広くなり、小さくすると細くなります。
max-width:85%;
小さい画面で表示できる最大幅です。割合を大きくすると画面内で占める幅が広くなります。
padding:32px 24px;
ドロワーメニュー内側の余白です。値を大きくすると余白が広がります。
border-radius:8px;
ボタンやリンクの角丸です。値を大きくすると丸みが強くなり、小さくすると四角に近づきます。
gap:10px;
メニュー項目同士の間隔です。値を大きくすると項目の間隔が広がります。
transition:transform .3s ease;
ドロワーメニューがスライドする時間です。0.3秒で移動します。値を大きくするとゆっくり、小さくすると速く表示されます。
レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%とmax-width:700pxにより画面幅に応じてレイアウトが調整されます。また、640px以下では余白を小さくし、ドロワーメニューも画面サイズに合わせて表示されるため、スマートフォン・タブレット・PCで利用できます。
コメント