カテゴリ: Bootstrap 更新日: 2026/07/19

Bootstrapオフキャンバスでヘッダーメニューを簡単実装!Navbarトグラー活用法

Navbar トグラーと連携:ヘッダー右側から出るメニューの定番レシピ
Navbar トグラーと連携:ヘッダー右側から出るメニューの定番レシピ

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

生徒

「Bootstrapでヘッダーの右側からメニューを出すことってできますか?」

先生

「はい、BootstrapのオフキャンバスとNavbarトグラーを組み合わせると簡単にできます。」

生徒

「オフキャンバスって何ですか?」

先生

「オフキャンバスとは、画面の外側に隠れているコンテンツがボタンを押すとスライドして表示されるUIのことです。スマホやPCでも使いやすいメニューの作り方ですよ。」

1. オフキャンバスとNavbarトグラーの基本

1. オフキャンバスとNavbarトグラーの基本
1. オフキャンバスとNavbarトグラーの基本

オフキャンバスは、Bootstrap5から標準で用意されている機能で、画面の左や右、上や下からコンテンツをスライド表示できます。Navbarトグラーはヘッダーの右上に小さなボタンを置き、クリックするとオフキャンバスを開閉するためのボタンです。これを組み合わせることで、簡単にモバイルフレンドリーなメニューが作れます。

2. 基本的な右側から出るオフキャンバスメニューの作り方

2. 基本的な右側から出るオフキャンバスメニューの作り方
2. 基本的な右側から出るオフキャンバスメニューの作り方

まずは、右側からスライドして出てくるシンプルなメニューを作ってみましょう。NavbarとオフキャンバスのIDを紐付けることで連動します。


<nav class="navbar navbar-light bg-light">
    <div class="container-fluid">
        <a class="navbar-brand" href="#">サイト名</a>
        <button class="btn btn-outline-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight">
            メニュー
        </button>
    </div>
</nav>

<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight">
    <div class="offcanvas-header">
        <h5 class="offcanvas-title">メニュー</h5>
        <button type="button" class="btn-close" data-bs-dismiss="offcanvas"></button>
    </div>
    <div class="offcanvas-body">
        <ul class="list-unstyled">
            <li><a href="#">ホーム</a></li>
            <li><a href="#">サービス</a></li>
            <li><a href="#">お問い合わせ</a></li>
        </ul>
    </div>
</div>
ブラウザ表示

3. トグラーにアイコンを追加してわかりやすくする

3. トグラーにアイコンを追加してわかりやすくする
3. トグラーにアイコンを追加してわかりやすくする

メニューのボタンに文字だけでなくアイコンを入れると、ユーザーにとって視覚的にわかりやすくなります。Bootstrap Iconsを利用して、ハンバーガーメニューのようなアイコンを表示できます。


<button class="btn btn-outline-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight">
    <i class="bi bi-list"></i> メニュー
</button>
ブラウザ表示

4. ナビゲーションリンクを整理して見やすくする

4. ナビゲーションリンクを整理して見やすくする
4. ナビゲーションリンクを整理して見やすくする

オフキャンバスメニューの中は、単なるリストでも良いですが、カテゴリごとに分けたり、ボタン風にしたりすると見やすくなります。Bootstrapのユーティリティクラスで余白や背景を整えることも可能です。


<div class="offcanvas-body">
    <ul class="list-group">
        <li class="list-group-item"><a href="#">ホーム</a></li>
        <li class="list-group-item"><a href="#">サービス</a></li>
        <li class="list-group-item"><a href="#">お問い合わせ</a></li>
    </ul>
</div>
ブラウザ表示

5. スマホ対応のためにオフキャンバス幅を調整する

5. スマホ対応のためにオフキャンバス幅を調整する
5. スマホ対応のためにオフキャンバス幅を調整する

オフキャンバスの幅はデフォルトで約300pxですが、Bootstrapのクラスを追加して幅を変えることもできます。画面サイズに合わせて調整すれば、スマホでも見やすいデザインになります。


<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" style="width: 80%;">
    ...
</div>
ブラウザ表示

6. メニューに検索フォームを追加して利便性アップ

6. メニューに検索フォームを追加して利便性アップ
6. メニューに検索フォームを追加して利便性アップ

オフキャンバスの中に検索フォームを置くと、ユーザーがサイト内検索を簡単に行えます。Bootstrapのフォームクラスを利用して見た目も整えましょう。


<form class="d-flex mb-3">
    <input class="form-control me-2" type="search" placeholder="検索" aria-label="検索">
    <button class="btn btn-primary" type="submit">検索</button>
</form>
ブラウザ表示

7. 複数のオフキャンバスを使い分ける方法

7. 複数のオフキャンバスを使い分ける方法
7. 複数のオフキャンバスを使い分ける方法

サイトによっては右側だけでなく左側にもメニューを置きたい場合があります。IDを変えて複数作ることで、右と左で別のメニューを出すことができます。


<!-- 左側オフキャンバス -->
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasLeft">
    <div class="offcanvas-header">
        <h5 class="offcanvas-title">左メニュー</h5>
        <button type="button" class="btn-close" data-bs-dismiss="offcanvas"></button>
    </div>
    <div class="offcanvas-body">
        <p>ここに左メニューの内容を入れます</p>
    </div>
</div>
ブラウザ表示

8. オフキャンバスをアニメーションで滑らかに見せる

8. オフキャンバスをアニメーションで滑らかに見せる
8. オフキャンバスをアニメーションで滑らかに見せる

Bootstrapではオフキャンバスがスライドするアニメーションが標準で付いていますが、さらにCSSで微調整して滑らかに見せることも可能です。transitionプロパティで速度を変えるだけで印象が変わります。


<style>
.offcanvas {
    transition: transform 0.5s ease-in-out;
}
</style>
ブラウザ表示

まとめ

まとめ
まとめ

今回の記事では、Bootstrapのオフキャンバスを活用してヘッダーメニューを簡単に実装する方法について詳しく解説しました。オフキャンバスは、画面の左右や上下からスライドして表示されるコンテンツのことで、特にスマホやタブレットなどのモバイル端末でのユーザビリティ向上に役立ちます。Navbarトグラーと組み合わせることで、ヘッダーに小さなボタンを設置し、クリックするとオフキャンバスメニューを開閉する簡単な操作が可能になります。

まず、基本的な右側から出るオフキャンバスメニューの作り方を理解しました。<nav class="navbar">~</nav>とオフキャンバスのIDを連動させることで、ボタン操作でスムーズにメニューが表示される仕組みを学びました。また、ボタンにBootstrap Iconsを加えることで、視覚的にわかりやすいナビゲーションが実現できることも確認しました。

メニュー内のリンクの整理方法として、リストやカテゴリ分け、ボタン風のデザインなどを用いることで、ユーザーが迷わず目的のページにアクセスできることが分かりました。さらに、スマホ対応としてオフキャンバスの幅を調整する方法や、検索フォームを追加してサイト内検索を簡単に行える利便性向上のテクニックも紹介しました。

複数のオフキャンバスを使い分けることで、サイトの右側・左側に異なるメニューを設置することも可能で、より複雑なサイト構造にも対応できます。最後に、オフキャンバスのアニメーションをCSSのtransitionプロパティで調整することで、滑らかで自然なスライド動作を実現できる点も学びました。

サンプルプログラムの振り返り


<!-- Navbarとオフキャンバスの連動例 -->
<nav class="navbar navbar-light bg-light">
    <div class="container-fluid">
        <a class="navbar-brand" href="#">サイト名</a>
        <button class="btn btn-outline-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight">
            <i class="bi bi-list"></i> メニュー
        </button>
    </div>
</nav>

<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" style="width: 80%;">
    <div class="offcanvas-header">
        <h5 class="offcanvas-title">メニュー</h5>
        <button type="button" class="btn-close" data-bs-dismiss="offcanvas"></button>
    </div>
    <div class="offcanvas-body">
        <form class="d-flex mb-3">
            <input class="form-control me-2" type="search" placeholder="検索" aria-label="検索">
            <button class="btn btn-primary" type="submit">検索</button>
        </form>
        <ul class="list-group">
            <li class="list-group-item"><a href="#">ホーム</a></li>
            <li class="list-group-item"><a href="#">サービス</a></li>
            <li class="list-group-item"><a href="#">お問い合わせ</a></li>
        </ul>
    </div>
</div>

<!-- 左側オフキャンバス -->
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasLeft">
    <div class="offcanvas-header">
        <h5 class="offcanvas-title">左メニュー</h5>
        <button type="button" class="btn-close" data-bs-dismiss="offcanvas"></button>
    </div>
    <div class="offcanvas-body">
        <p>ここに左メニューの内容を入れます</p>
    </div>
</div>

<style>
.offcanvas {
    transition: transform 0.5s ease-in-out;
}
</style>
ブラウザ表示
先生と生徒の振り返り会話

生徒

「オフキャンバスってすごく便利ですね。スマホでも画面を圧迫せずにメニューを表示できるのがいいです。」

先生

「そうです。特にBootstrapを使うと、簡単にモバイルフレンドリーなメニューが作れるので、初めての人でも安心です。」

生徒

「ボタンにアイコンを入れると見やすさもアップしますね。」

先生

「その通りです。文字だけよりも視覚的に分かりやすくなり、ユーザーの操作性が向上します。」

生徒

「複数のオフキャンバスを使い分ける方法も覚えて、左右どちらからでもメニューを出せるんですね。」

先生

「はい、IDを変えるだけで簡単に左右両方にメニューを設置できるので、サイトのデザインに合わせて活用できます。」

生徒

「アニメーションを調整すると、スライドも滑らかになって見た目がすごく良くなりますね。」

先生

「その通りです。CSSのtransitionを調整するだけで簡単に演出を改善できるので、サイト全体の印象も向上します。」

2026年最新 スキルアップ・実践セミナー

【60分集中】CSSを1行も書かない!?Bootstrap 5ユーティリティクラス活用で開発工数を50%削減

「スピード」が武器になる。Bootstrap 5で商用クオリティのWebサイトを高速構築。

本講座では、世界シェアNo.1のフレームワークBootstrap 5を使いこなし、ゼロからレスポンシブサイトを組み上げる「現場最速のワークフロー」を学びます。単なる導入に留まらず、ユーティリティクラスを活用した効率化と、実務で必須となるカスタマイズ技法を60分で完全習得します。

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

【つくるもの】
モダンなランディングページ(LP)やダッシュボードのプロトタイプを作成します。ナビゲーション、ヒーローセクション、カードレイアウト、フッターなど、Bootstrapのコンポーネントを組み合わせて「一瞬で形にする」感動を体験してください。

【開発環境】
VS CodeにBootstrap 5専用のSnippet(補完機能)を導入し、手入力を最小限にする環境を構築。最新のCDN利用法や、表示速度(Core Web Vitals)を意識した最適な読み込み設定など、プロの初期設定を伝授します。

この60分で得られる3つの革新スキル

1. グリッドシステムの完全マスター

スマホ・タブレット・PCでレイアウトを自由自在に切り替える「ブレイクポイント」の極意を学びます。

2. ユーティリティクラスによる爆速デザイン

CSSを1行も書かずに、マージン・パディング・カラーを制御。開発工数を半分以下にする実戦術を習得します。

3. 脱・標準デザインのカスタマイズ

「Bootstrap感」を消し、独自のブランドイメージに合わせるための、上書きの作法とデザインの整え方を伝授します。

※本講座は、HTML/CSSの基本を理解した方向けの「実践加速講座」です。制作会社のコーダーや副業フリーランスとして「案件の回転率」を上げ、市場価値を最大化させたい方をモクモクがバックアップします。

【60分集中】CSSを1行も書かない!?Bootstrap 5ユーティリティクラス活用で開発工数を50%削減

Bootstrap 5を楽しみながら、一緒に学びましょう!

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

このセミナーの詳細・お申し込みはこちら
カテゴリの一覧へ
新着記事
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
CSS
CSSでフォームをオシャレに!inputやボタンのスタイル調整を初心者向けに解説
No.8
Java&Spring記事人気No8
HTML
HTMLのformタグの書き方を完全ガイド!actionとmethod属性の意味を初心者向けにやさしく解説