カテゴリ: CSS 更新日: 2026/07/27

CSSのみで作るハンバーガーメニュー表示切替完全ガイド!初心者でもわかるスマホ用ナビゲーション実装方法

ハンバーガーメニューの表示切替をCSSのみで作る方法
ハンバーガーメニューの表示切替をCSSのみで作る方法

先生と生徒の会話形式で理解しよう

生徒

「スマートフォンのホームページでよく見かける三本線のハンバーガーメニューを、CSSの仕組みだけでパッと開閉させる方法ってどう作るんですか?」

先生

「チェックボックスの状態を記憶する仕組みとCSSを組み合わせることで、JavaScriptを使わなくてもハンバーガーメニューの表示切替を簡単に実装することができます。」

生徒

「具体的にはどのようにHTMLやCSSを記述すればいいんですか?」

先生

「それでは、基本的な構造とスタイルの書き方を見ていきましょう!」

1. ハンバーガーメニューの基本構造と役割

1. ハンバーガーメニューの基本構造と役割
1. ハンバーガーメニューの基本構造と役割

CSSの設定をすることによって、画面の幅が狭いスマートフォンやタブレットなどの端末でも、たくさんのメニュー項目をきれいに収納し、三本線のアイコンをタッチしたときだけにパッとメニューを出現させることができるようになります。例えば、普段は画面の端っこにすっきりと隠しておき、ユーザーがボタンを押した瞬間だけに綺麗に展開させることが可能です。レスポンシブデザインを上手に取り入れることで、どんなサイズの画面であっても非常に見やすくて使いやすい洗練されたウェブサイトを作ることができるようになります。プログラミング未経験でパソコンを触ったことがない方にとっても、普段はカバンのチャックの中にきれいにしまわれている大切な小物を、使うときだけサッと取り出すような仕組みとして考えると非常にイメージしやすくなります。

2. チェックボックスを使ったメニュー開閉の仕組み

2. チェックボックスを使ったメニュー開閉の仕組み
2. チェックボックスを使ったメニュー開閉の仕組み

JavaScriptを使わずにCSSのみでハンバーガーメニューの表示切替を作るための最も基本的で大切なステップが、チェックボックスの選択状態を利用する特殊な技術です。画面上ではチェックボックスそのものを透明にして見えなくしておき、三本線のラベル部分が押されたときにチェックが入るように連動させることで、プログラムのスイッチとして活用することができます。コンプライアンスとは企業や組織が法律やルールを守ることを指しますが、プログラミングの世界でも正しい文法のルールに従ってコードを書くことが大切です。例えば、壁に取り付けられた小さなスイッチをカチッと押した瞬間に、天井のランプがパッと明るく点灯するような仕組みに似ています。次のサンプルコードでは、最もシンプルなチェックボックスを活用した開閉の書き方を確認してみましょう。


<style>
    .hamburger-box {
        position: relative;
    }
    .hamburger-input {
        display: none;
    }
    .hamburger-label {
        display: block;
        background-color: #0d6efd;
        color: white;
        padding: 10px 15px;
        font-weight: bold;
        width: 150px;
        text-align: center;
    }
    .hamburger-menu {
        display: none;
        background-color: #f8f9fa;
        padding: 10px;
        width: 150px;
    }
    .hamburger-input:checked ~ .hamburger-menu {
        display: block;
    }
</style>

<div class="hamburger-box">
    <input type="checkbox" id="nav-toggle" class="hamburger-input">
    <label for="nav-toggle" class="hamburger-label">メニューを開閉</label>
    <div class="hamburger-menu">
        <p>ホーム</p>
        <p>サービス</p>
        <p>お問い合わせ</p>
    </div>
</div>
ブラウザ表示

3. 三本線アイコンのデザインを作成するスタイリング手法

3. 三本線アイコンのデザインを作成するスタイリング手法
3. 三本線アイコンのデザインを作成するスタイリング手法

ハンバーガーメニューのボタンとして欠かせない、きれいな三本線のデザインをCSSのボックス装飾を使って一から作り上げるための実用的なテクニックです。一つの小さな四角い箱に対して複数の線の影をつけるか、あるいは上下のボーダーや疑似要素と呼ばれる特別な仕組みを組み合わせることで、画像を使わなくてもくっきりとした美しい三本線アイコンを表現することができます。品質保証とは製品やサービスの品質を保つための大切なプロセスのことですが、ホームページの見た目の美しさや視認性を保つためにも正しい装飾の選択が欠かせません。例えば、真っ白なキャンバスの上に、細いブラシを使って綺麗に三本の平行な線を丁寧に描き込んでいくような手仕事の作業です。次のプログラムでは、三本線のアイコンを表現するための基本的な書き方を見ていきましょう。


<style>
    .icon-box {
        display: inline-block;
        background-color: #e9ecef;
        padding: 12px 18px;
    }
    .icon-line {
        display: block;
        width: 30px;
        height: 4px;
        background-color: #212529;
        margin-bottom: 6px;
    }
    .icon-line:last-child {
        margin-bottom: 0;
    }
</style>

<div class="icon-box">
    <span class="icon-line"></span>
    <span class="icon-line"></span>
    <span class="icon-line"></span>
</div>
ブラウザ表示

4. リストタグと組み合わせた実用的なハンバーガーメニューの構築

4. リストタグと組み合わせた実用的なハンバーガーメニューの構築
4. リストタグと組み合わせた実用的なハンバーガーメニューの構築

実際のウェブサイトで本格的なスマートフォン用ナビゲーションを実装する際には、箇条書きを表すリストタグをメニューの中に綺麗に収めて構造化するのが一般的であり、検索エンジンに対しても構造がしっかりと伝わりやすくなります。親のボックスの中に箇条書きのリストをすっきりと内包させることで、HTMLの文法としても非常に美しく、SEOの観点からも優れたナビゲーションシステムを作り上げることが可能です。リソース配分とは限られた予算や時間を効率よく割り振るための管理手法ですが、ウェブデザインの世界でも画面のスペースや情報を美しく整理整頓することが重要です。例えば、大きな会社の組織図のように、部署の下にそれぞれの係が綺麗に階層状に枝分かれして並んでいるような分かりやすい構造に似ています。次のプログラムでは、リストタグを使った実用的なハンバーガーメニューの書き方を確認してみましょう。


<style>
    .nav-container {
        position: relative;
    }
    .nav-checkbox {
        display: none;
    }
    .nav-button {
        display: block;
        background-color: #dee2e6;
        padding: 10px 15px;
        font-weight: bold;
        width: 160px;
    }
    .nav-list {
        display: none;
        list-style: none;
        padding: 0;
        margin: 0;
        background-color: #ffffff;
        width: 160px;
        box-shadow: 0px 4px 6px rgba(0,0,0,0.15);
    }
    .nav-list li a {
        display: block;
        padding: 10px 15px;
        color: #495057;
        text-decoration: none;
    }
    .nav-checkbox:checked ~ .nav-list {
        display: block;
    }
</style>

<div class="nav-container">
    <input type="checkbox" id="menu-toggle" class="nav-checkbox">
    <label for="menu-toggle" class="nav-button">メニュー表示 ▼</label>
    <ul class="nav-list">
        <li><a href="#">新着情報</a></li>
        <li><a href="#">会社概要</a></li>
        <li><a href="#">採用情報</a></li>
    </ul>
</div>
ブラウザ表示

5. transitionプロパティを活用したなめらかなスライド表示アニメーション演出

5. transitionプロパティを活用したなめらかなスライド表示アニメーション演出
5. transitionプロパティを活用したなめらかなスライド表示アニメーション演出

メニューが開いた瞬間にポッと急に画面に現れるのではなく、まるでカーテンがスーッと横や縦に広がっていくかのようにじわっと自然になめらかに出現させるために欠かせないのがトランジションというアニメーションプロパティです。高さや不透明度を調整する設定を組み合わせることで、機械的なカクカクした動きが消え、高級感あふれるスムーズで心地よいユーザー体験を演出することが可能になります。リスク管理とは危険を予測してトラブルを防ぐことですが、デザインの不自然な違和感をあらかじめ取り除くことも美しいサイト運営においては大切なポイントです。例えば、急にパッと点灯する蛍光灯の明かりではなく、ダイヤルをゆっくり回して部屋の明るさがじわじわと変わるような調光器の仕組みに似ています。次のプログラムでは、なめらかに開閉するハンバーガーメニューの書き方を見ていきましょう。


<style>
    .slide-container {
        position: relative;
    }
    .slide-checkbox {
        display: none;
    }
    .slide-button {
        display: block;
        background-color: #ced4da;
        padding: 10px 15px;
        font-weight: bold;
        width: 180px;
    }
    .slide-content {
        max-height: 0;
        overflow: hidden;
        background-color: #f1f3f5;
        width: 180px;
        transition: max-height 0.4s ease;
    }
    .slide-checkbox:checked ~ .slide-content {
        max-height: 150px;
    }
    .slide-content div {
        padding: 10px 15px;
        border-bottom: 1px solid #dee2e6;
    }
</style>

<div class="slide-container">
    <input type="checkbox" id="slide-toggle" class="slide-checkbox">
    <label for="slide-toggle" class="slide-button">スムーズメニュー ▼</label>
    <div class="slide-content">
        <div>トップページ</div>
        <div>事業内容</div>
        <div>お問い合わせ</div>
    </div>
</div>
ブラウザ表示

6. メディアクエリと組み合わせてパソコンとスマホの表示を自動切替するコツ

6. メディアクエリと組み合わせてパソコンとスマホの表示を自動切替するコツ
6. メディアクエリと組み合わせてパソコンとスマホの表示を自動切替するコツ

スマートフォンの画面ではハンバーガーメニューを表示させ、パソコンのような大きな画面で見たときには通常の横並びメニューに自動で切り替えるための非常に重要な技術がメディアクエリという条件分岐の仕組みです。画面の大きさに応じてCSSのスタイルを柔軟に変更させることで、どのようなデバイスからアクセスしても最適なレイアウトを提供することが現代のウェブ制作では欠かせません。ナレッジ管理とは知識やノウハウを蓄積して共有することですが、時代に合わせたデザイン手法を学ぶこともプログラミング学習の大切なステップです。例えば、季節の移り変わりにあわせて、お部屋のカーテンを薄手のものから厚手のものへとスマートに掛け替えるような工夫に似ています。次のプログラムでは、画面の幅に合わせて表示が切り替わる応用的な書き方を確認してみましょう。


<style>
    .switch-sample {
        background-color: #e2e3e5;
        padding: 12px;
        font-weight: bold;
    }
    .pc-menu {
        display: flex;
        gap: 20px;
        list-style: none;
        padding: 0;
        margin: 0;
    }
    @media screen and (max-width: 768px) {
        .pc-menu {
            display: block;
        }
    }
</style>

<div class="switch-sample">
    <ul class="pc-menu">
        <li>ホーム</li>
        <li>商品紹介</li>
        <li>会社情報</li>
    </ul>
</div>
ブラウザ表示
2026年最新 スキルアップ・実践セミナー

【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー

「魅せる力」をコードで実現。CSS3でモダンWebデザインのプロトタイピングを。

本講座では、単に色を変えるだけではなく、「ユーザーを迷わせないUIデザイン」「崩れないレイアウト設計」の本質を学びます。最新のCSS3とモダンなレイアウト手法を通じて、プロの現場で通用する「美しさと機能性を両立した実装力」を最短距離で習得します。

具体的なワークショップ内容と環境

【つくるもの】
HTMLで作成した骨組みに対し、商用サイトでも採用される「スタイリッシュなカード型UI」や「レスポンシブなナビゲーション」を構築します。色の選定基準や余白(ホワイトスペース)の黄金比など、デザインの理論をコードに落とし込む工程を体験してください。

【開発環境】
フロントエンド開発の標準であるVisual Studio Code (VS Code)を継続使用。CSSの記述を効率化するプラグインや、ブラウザのデベロッパーツール(検証機能)を駆使して、リアルタイムでデザインを微調整するプロのワークフローを再現します。

この60分で得られる3つの技術資産

1. 現代のデファクトスタンダード「Flexbox」

要素の横並びや中央揃えを自由自在に操り、どんなデバイスでも崩れないレスポンシブな配置術を完全理解します。

2. メンテナンス性を高めるCSS設計の基礎

後から修正しやすい「壊れにくいコード」の書き方を伝授。プロの現場で必須となる命名規則の考え方を学びます。

3. パフォーマンスと美しさの両立

画像の最適化や軽量な装飾技法など、ページの表示速度を落とさずに高級感のある演出を行うテクニックを習得します。

※本講座は、HTMLの基礎を終えた後のステップアップ講座です。Webデザイナー、UIデザイナー、フロントエンドエンジニアへの道を切り開く「魅せる技術」を、モクモク独自のパーソナル指導で着実に定着させます。

【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー

リラックスしながら、学ぶことが大切です。しっかりと基礎を理解しましょう!

各回少人数・マンツーマン形式で徹底サポート

このセミナーの詳細・お申し込みはこちら
カテゴリの一覧へ
新着記事
New1
Bootstrap
Bootstrapで定義リストdlを整形する方法とレスポンシブ2カラムレイアウト完全解説
New2
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
New3
Bootstrap
Bootstrap 5 のナビゲーション入門:Navbar・タブ・ピルの違いと実装例
New4
CSS
背景画像とimgタグの使い分け完全ガイド!初心者でもわかる違いとスタイル比較
人気記事
No.1
Java&Spring記事人気No1
CSS
初心者向け!Webデザインに役立つ色彩心理学と配色の基本を徹底解説
No.2
Java&Spring記事人気No2
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.3
Java&Spring記事人気No3
CSS
CSSでGoogle Fontsを使う方法を完全ガイド!初心者でもできるフォントの変更
No.4
Java&Spring記事人気No4
CSS
テキストボックスの作り方!CSSで幅・高さ・色を自由にカスタマイズする方法
No.5
Java&Spring記事人気No5
CSS
CSSのnth-child()を完全攻略!特定の順番にスタイルを当てる方法
No.6
Java&Spring記事人気No6
CSS
CSSの透明度を完全解説!初心者にもわかるopacityとrgbaの使い方
No.7
Java&Spring記事人気No7
HTML
HTMLのimgタグの書き方|src・altの必須属性を初心者向けにやさしく整理
No.8
Java&Spring記事人気No8
CSS
CSSでフォームをオシャレに!inputやボタンのスタイル調整を初心者向けに解説