ドロップダウンメニュー内にドロップダウンメニューを表示する方法【HTML/CSS/JavaScript・サンプルコード付き】

ドロップダウンメニュー

ドロップダウンメニュー内にドロップダウンメニューを表示する方法

ドロップダウンメニュー内に、さらに別のドロップダウンメニューを表示する方法を紹介します。このサンプルでは、親となるメニューをクリックして項目を表示し、その中にある項目をクリックすると、さらに下の階層にあるメニューを開ける入れ子構造のドロップダウンメニューを作成します。

商品カテゴリーからさらに細かなカテゴリーを選択するメニューや、サービス一覧から詳細な項目を選択するナビゲーションなど、複数の階層に分けて項目を整理したい場面に利用できます。外側と内側のドロップダウンメニューを分けて表示することで、最初からすべての項目を並べる場合よりもコンパクトにまとめられます。

HTMLでは外側と内側のメニュー項目を変更でき、CSSでは横幅、余白、文字色、背景色、枠線、角丸などを調整できます。JavaScriptではそれぞれのボタンをクリックしたときに対応するメニューを開閉します。レスポンシブにも対応しているため、スマートフォン・タブレット・PCで利用できます。

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

デモ

サービスメニュー

メニューを開くと、その中にあるドロップダウンメニューも個別に開閉できます。

「サービス一覧」をクリックして外側のメニューを開き、「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>

  <!-- ドロップダウンメニュー全体 -->
  <div class="nested-dropdown_wrap">

    <!-- タイトル -->
    <div class="nested-dropdown_title">
      サービスメニュー
    </div>

    <!-- 説明文 -->
    <p class="nested-dropdown_text">
      メニューを開くと、その中にあるドロップダウンメニューも個別に開閉できます。
    </p>

    <!-- 外側のドロップダウンメニュー -->
    <div class="nested-dropdown_menu">

      <!-- 外側メニューの開閉ボタン -->
      <button
        class="nested-dropdown_button"
        type="button"
        aria-expanded="false">
        サービス一覧
      </button>

      <!-- 外側のメニュー一覧 -->
      <ul class="nested-dropdown_list">

        <!-- 通常のメニュー項目 -->
        <li class="nested-dropdown_item">
          <a class="nested-dropdown_link" href="#">
            お知らせ
          </a>
        </li>

        <!-- 内側のドロップダウンメニューを含む項目 -->
        <li class="nested-dropdown_item">

          <!-- 内側メニューの開閉ボタン -->
          <button
            class="nested-dropdown_sub-button"
            type="button"
            aria-expanded="false">
            Webサービス
          </button>

          <!-- 内側のメニュー一覧 -->
          <ul class="nested-dropdown_sub-list">

            <li>
              <a class="nested-dropdown_sub-link" href="#">
                Webサイト制作
              </a>
            </li>

            <li>
              <a class="nested-dropdown_sub-link" href="#">
                サイト運用
              </a>
            </li>

            <li>
              <a class="nested-dropdown_sub-link" href="#">
                サポート
              </a>
            </li>

          </ul>

        </li>

        <!-- 通常のメニュー項目 -->
        <li class="nested-dropdown_item">
          <a class="nested-dropdown_link" href="#">
            お問い合わせ
          </a>
        </li>

      </ul>

    </div>

  </div>

  <!-- JavaScriptファイル -->
  <script src="script.js"></script>

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

こちらもおすすめ


コメント