HTML/CSSだけで動くドロワーメニューの作り方【HTML/CSS・サンプルコード付き】

ドロワーメニュー

HTML/CSSだけで動くドロワーメニューの作り方

HTMLとCSSだけで動作するドロワーメニューの作り方を紹介します。JavaScriptを使用せず、チェックボックスとlabel要素を利用してメニューの開閉を実現するシンプルなサンプルです。CSSだけで動作するため、軽量なサイトやJavaScriptを使わずに実装したい場面でも利用できます。

「メニューを開く」ボタンをクリックすると画面左側からドロワーメニューが表示され、閉じるボタンや背景部分をクリックするとメニューを閉じられます。基本的なドロワーメニューの仕組みを理解したい方や、HTML/CSSだけでUIを実装したい方にもおすすめです。

サンプルコードはHTMLとCSSのみで構成されているため、そのままコピーして利用できます。メニュー項目や色、幅、アニメーション速度なども自由に変更でき、自分のサイトに合わせてカスタマイズできます。

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

デモ

HTML/CSSだけで動くドロワーメニュー

JavaScriptを使用せず、HTMLとCSSだけでドロワーメニューを開閉できます。

「メニューを開く」をクリックすると左側からドロワーメニューが表示されます。JavaScriptを使用せず、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="html-css-drawer-menu_container">

    <!-- ドロワーメニューを開く操作エリア -->
    <div class="html-css-drawer-menu_wrap">

      <!-- 操作エリアのタイトル -->
      <div class="html-css-drawer-menu_title">
        HTML/CSSだけで動くドロワーメニュー
      </div>

      <!-- 操作エリアの説明文 -->
      <p class="html-css-drawer-menu_text">
        JavaScriptを使用せず、HTMLとCSSだけでドロワーメニューを開閉できます。
      </p>

      <!-- ドロワーメニューを開くボタン -->
      <label
        for="html-css-drawer-menu-toggle"
        class="html-css-drawer-menu_open">
        メニューを開く
      </label>

    </div>

    <!-- 開閉状態を管理するチェックボックス -->
    <input
      type="checkbox"
      id="html-css-drawer-menu-toggle"
      class="html-css-drawer-menu_check">

    <!-- 背景クリックでドロワーメニューを閉じる領域 -->
    <label
      for="html-css-drawer-menu-toggle"
      class="html-css-drawer-menu_overlay">
    </label>

    <!-- ドロワーメニュー本体 -->
    <aside class="html-css-drawer-menu_drawer">

      <!-- ドロワーメニュー上部 -->
      <div class="html-css-drawer-menu_header">

        <!-- ドロワーメニューのタイトル -->
        <div class="html-css-drawer-menu_heading">
          メニュー
        </div>

        <!-- ドロワーメニューを閉じるボタン -->
        <label
          for="html-css-drawer-menu-toggle"
          class="html-css-drawer-menu_close"
          aria-label="閉じる">
          ×
        </label>

      </div>

      <!-- ナビゲーションメニュー -->
      <nav
        class="html-css-drawer-menu_nav"
        aria-label="メインメニュー">

        <!-- ホームへのリンク -->
        <a
          class="html-css-drawer-menu_link"
          href="#home">
          ホーム
        </a>

        <!-- サービスへのリンク -->
        <a
          class="html-css-drawer-menu_link"
          href="#service">
          サービス
        </a>

        <!-- お知らせへのリンク -->
        <a
          class="html-css-drawer-menu_link"
          href="#news">
          お知らせ
        </a>

        <!-- お問い合わせへのリンク -->
        <a
          class="html-css-drawer-menu_link"
          href="#contact">
          お問い合わせ
        </a>

      </nav>

    </aside>

  </div>

</body>
</html>

ファイル構成と設置方法

このサンプルはHTMLとCSSの2ファイルで構成されています。JavaScriptを使用せず、HTMLのチェックボックスとlabel要素、CSSのセレクターを利用してドロワーメニューの開閉を実現しています。軽量で導入しやすく、JavaScriptを利用できない環境でも基本的なドロワーメニューを実装できます。

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

各ファイルの役割
index.htmlはドロワーメニュー本体、開くボタン、閉じるボタン、背景オーバーレイ、メニュー項目を配置するファイルです。表示するメニュー項目やタイトル、文章を自由に編集できます。

style.cssはドロワーメニュー全体のデザインを設定します。背景色、文字色、横幅、余白、角丸、影、開閉アニメーションなどの見た目を変更できます。

設置方法・使い方
sampleフォルダへindex.htmlとstyle.cssを配置してください。配置後はsample/index.htmlをブラウザで開くだけで利用できます。「メニューを開く」をクリックすると左側からドロワーメニューが表示され、「×」ボタンまたは背景部分をクリックすると閉じます。

カスタマイズできる内容
index.htmlではタイトル、説明文、メニュー項目、リンク先を変更できます。style.cssではドロワーメニューの横幅、背景色、文字色、余白、角丸、影、背景オーバーレイの色、開閉アニメーション速度などを自由に調整できます。

数値調整
style.cssの「width:320px;」はドロワーメニューの横幅です。値を変更するとメニュー全体の幅が変わります。

style.cssの「max-width:85%;」は画面に対する最大幅です。値を変更するとスマートフォンなど小さい画面での表示幅が変わります。

style.cssの「transition:transform .3s;」の「.3」は開閉アニメーション時間です。値を大きくするとゆっくり、小さくすると速く開閉します。

style.cssの「background:rgba(15,23,42,.55);」の「.55」は背景オーバーレイの濃さです。値を大きくすると背景が濃く、小さくすると薄くなります。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssの「max-width:85%;」を利用して画面サイズに応じて横幅を自動調整しています。スマートフォン・タブレット・PCでも利用できます。



コメント