HTML/CSSのみで作るドロップダウンメニューの作り方【HTML/CSS・サンプルコード付き】

ドロップダウンメニュー

HTML/CSSのみで作るドロップダウンメニューの作り方

HTML/CSSのみで作るドロップダウンメニューの作り方を紹介します。このサンプルでは、HTMLとCSSだけを使用してボタンのクリックでメニューを開閉できるシンプルなドロップダウンメニューを作成します。JavaScriptは使用せず、チェックボックスとlabel要素を利用して開閉状態を切り替えるため、軽量で導入しやすい構成になっています。

ドロップダウンメニューは、ヘッダーのナビゲーション、会員サイトのメニュー、管理画面の機能一覧、スマートフォン向けの簡易メニューなど、限られたスペースへ複数のリンクをまとめたい場面で活用できます。ボタンをクリックするとメニューが表示され、もう一度クリックすると閉じるため、シンプルで分かりやすい操作性を実現できます。

タイトル、説明文、ボタン名、リンク名はHTMLから変更でき、CSSでは横幅、背景色、文字色、余白、角丸、枠線、ホバー時のデザインなどを自由にカスタマイズできます。また、レスポンシブ対応のためスマートフォン・タブレット・PCでも利用しやすく、HTML/CSSだけでドロップダウンメニューを実装したい方におすすめのサンプルです。

コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

デモ

HTML/CSSのみで動くドロップダウンメニュー

ボタンをクリックするとメニューを開閉できます。

「メニュー」をクリックするとドロップダウンメニューが表示されます。もう一度クリックすると閉じます。

コードをコピーして使おう!

<!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-dropdown-menu_wrap">

    <!-- タイトル -->
    <div class="basic-dropdown-menu_title">
      HTML/CSSのみで動くドロップダウンメニュー
    </div>

    <!-- 説明文 -->
    <p class="basic-dropdown-menu_text">
      ボタンをクリックするとメニューを開閉できます。
    </p>

    <!-- メニュー配置エリア -->
    <div class="basic-dropdown-menu_group">

      <div class="basic-dropdown-menu_area">

        <!-- 開閉状態を管理するチェックボックス -->
        <input
          type="checkbox"
          id="basic-dropdown-menu"
          class="basic-dropdown-menu_toggle">

        <!-- メニューボタン -->
        <label
          class="basic-dropdown-menu_button"
          for="basic-dropdown-menu">
          メニュー
          <span class="basic-dropdown-menu_arrow">▼</span>
        </label>

        <!-- ドロップダウンメニュー -->
        <ul class="basic-dropdown-menu_list">

          <li>
            <a href="#" class="basic-dropdown-menu_link">
              ホーム
            </a>
          </li>

          <li>
            <a href="#" class="basic-dropdown-menu_link">
              サービス
            </a>
          </li>

          <li>
            <a href="#" class="basic-dropdown-menu_link">
              お問い合わせ
            </a>
          </li>

        </ul>

      </div>

    </div>

  </div>

</body>
</html>
コードをコピーする場合 使用するコードのタブを選び、「このタブをコピー」をクリックすると、現在表示中のコードをコピーできます。
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。

ファイル構成と設置方法

このサンプルはHTMLとCSSの2ファイルで構成されています。HTMLではチェックボックスとlabel要素を利用してドロップダウンメニューの開閉を制御し、CSSでは:checked疑似クラスを利用してメニューの表示・非表示を切り替えます。JavaScriptを使用せずに動作するため、軽量で導入しやすいドロップダウンメニューを作成できます。

sample/
├── index.html
└── style.css

各ファイルの役割
index.htmlはドロップダウンメニュー全体を構成するファイルです。タイトル、説明文、ボタン名、メニュー項目、リンク先などを編集できます。表示するメニュー項目を追加・削除する場合も、このファイルを編集します。

style.cssはドロップダウンメニュー全体のデザインを設定するファイルです。横幅、背景色、文字色、余白、角丸、影、ボタンデザイン、ホバー時の表示、レスポンシブ表示などを変更できます。

設置方法・使い方
sampleフォルダへindex.htmlとstyle.cssを配置します。2つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開いてください。「メニュー」ボタンをクリックするとドロップダウンメニューが表示され、もう一度クリックすると閉じます。

カスタマイズできる内容
index.htmlではタイトル、説明文、ボタン名、メニュー項目、リンク先を変更できます。サイトメニュー、カテゴリ一覧、サービス一覧など用途に合わせて自由に編集できます。

style.cssではメニュー全体の横幅、背景色、文字色、余白、角丸、ボタンサイズ、メニューの位置、影、リンクのホバー色などを変更できます。

数値調整
style.css
max-width:700px;
全体の最大横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。

padding:32px;
全体の内側余白です。値を大きくすると余白が広がり、小さくすると詰まった表示になります。

border-radius:18px;
全体の角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。

max-width:280px;
ドロップダウンメニューの横幅です。値を大きくするとメニューが横へ広がり、小さくするとコンパクトになります。

min-height:52px;
メニューボタンの高さです。値を大きくするとボタンが高くなり、小さくすると低くなります。

padding:14px 18px;
ボタンの内側余白です。値を変更するとボタンの大きさが変わります。

top:calc(100% + 10px);
ボタンとメニューの間隔です。10pxを大きくすると離れ、小さくすると近づきます。

padding:8px;
メニュー全体の内側余白です。値を大きくするとメニュー内の余白が広がります。

padding:12px 14px;
メニュー項目の余白です。値を大きくするとクリックしやすくなり、小さくするとコンパクトになります。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%max-widthにより画面幅に合わせて縮小されます。また、640px以下ではpadding:24px 18px;へ変更して余白を調整しているため、スマートフォン・タブレット・PCで利用できます。


こちらもおすすめ


コメント