Bootstrapオフキャンバスでヘッダーメニューを簡単実装!Navbarトグラー活用法
生徒
「Bootstrapでヘッダーの右側からメニューを出すことってできますか?」
先生
「はい、BootstrapのオフキャンバスとNavbarトグラーを組み合わせると簡単にできます。」
生徒
「オフキャンバスって何ですか?」
先生
「オフキャンバスとは、画面の外側に隠れているコンテンツがボタンを押すとスライドして表示されるUIのことです。スマホやPCでも使いやすいメニューの作り方ですよ。」
1. オフキャンバスとNavbarトグラーの基本
オフキャンバスは、Bootstrap5から標準で用意されている機能で、画面の左や右、上や下からコンテンツをスライド表示できます。Navbarトグラーはヘッダーの右上に小さなボタンを置き、クリックするとオフキャンバスを開閉するためのボタンです。これを組み合わせることで、簡単にモバイルフレンドリーなメニューが作れます。
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. トグラーにアイコンを追加してわかりやすくする
メニューのボタンに文字だけでなくアイコンを入れると、ユーザーにとって視覚的にわかりやすくなります。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. ナビゲーションリンクを整理して見やすくする
オフキャンバスメニューの中は、単なるリストでも良いですが、カテゴリごとに分けたり、ボタン風にしたりすると見やすくなります。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. スマホ対応のためにオフキャンバス幅を調整する
オフキャンバスの幅はデフォルトで約300pxですが、Bootstrapのクラスを追加して幅を変えることもできます。画面サイズに合わせて調整すれば、スマホでも見やすいデザインになります。
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" style="width: 80%;">
...
</div>
ブラウザ表示
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. 複数のオフキャンバスを使い分ける方法
サイトによっては右側だけでなく左側にもメニューを置きたい場合があります。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. オフキャンバスをアニメーションで滑らかに見せる
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を調整するだけで簡単に演出を改善できるので、サイト全体の印象も向上します。」
【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つの革新スキル
スマホ・タブレット・PCでレイアウトを自由自在に切り替える「ブレイクポイント」の極意を学びます。
CSSを1行も書かずに、マージン・パディング・カラーを制御。開発工数を半分以下にする実戦術を習得します。
「Bootstrap感」を消し、独自のブランドイメージに合わせるための、上書きの作法とデザインの整え方を伝授します。
※本講座は、HTML/CSSの基本を理解した方向けの「実践加速講座」です。制作会社のコーダーや副業フリーランスとして「案件の回転率」を上げ、市場価値を最大化させたい方をモクモクがバックアップします。
Bootstrap 5を楽しみながら、一緒に学びましょう!
各回少人数・マンツーマン形式で徹底サポート
このセミナーの詳細・お申し込みはこちら