Bootstrapアコーディオン・モーダルと表示ユーティリティ完全解説!初心者でもわかる可視性とレスポンシブの基本
生徒
「Bootstrapのアコーディオンやモーダルって、表示を切り替える仕組みがあるみたいですが、難しそうでよく分かりません」
先生
「画面に見えるか見えないかを切り替えるだけなので、考え方はとてもシンプルですよ」
生徒
「表示ユーティリティと一緒に使うと、動かなくなることがあると聞きました」
先生
「そこが初心者さんがつまずきやすいポイントなので、順番に見ていきましょう」
1. Bootstrapの表示ユーティリティとは何か
Bootstrapの表示ユーティリティとは、画面に表示するか隠すかを簡単に指定できる仕組みです。専門的には可視性制御と呼ばれますが、難しく考える必要はありません。電気のスイッチのように、見せるか消すかをクラス名で指定できる便利な機能です。
代表的なものに、d-noneやd-blockがあります。d-noneは表示しない、d-blockは表示するという意味です。プログラミング未経験の方は、紙を引き出しにしまうか机の上に出すか、というイメージを持つと理解しやすいです。
2. アコーディオンの基本動作を理解しよう
アコーディオンは、クリックすると中身が開いたり閉じたりする仕組みです。楽器のアコーディオンのように伸び縮みすることから、この名前が付いています。BootstrapではJavaScriptが自動で表示と非表示を切り替えています。
重要なのは、Bootstrap自身が表示制御を行っているという点です。つまり、外から強制的に非表示にすると、正しく動かなくなることがあります。
<div class="accordion" id="sampleAccordion">
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button" data-bs-toggle="collapse" data-bs-target="#body1">
見出し
</button>
</h2>
<div id="body1" class="accordion-collapse collapse">
<div class="accordion-body">
中身の文章
</div>
</div>
</div>
</div>
ブラウザ表示
3. モーダルの仕組みと表示の考え方
モーダルは、画面の上に重なって表示される小さなウィンドウです。確認画面や注意メッセージによく使われます。Bootstrapのモーダルも、内部で表示と非表示を自動的に管理しています。
モーダルは一時的に表示される前提で作られているため、表示ユーティリティで完全に消してしまうと、ボタンを押しても出てこなくなります。
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#sampleModal">
モーダルを開く
</button>
<div class="modal fade" id="sampleModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
ここがモーダルの中身です
</div>
</div>
</div>
</div>
ブラウザ表示
4. 表示ユーティリティと併用する際の注意点
アコーディオンやモーダルにd-noneを直接指定すると、Bootstrapの内部処理とぶつかってしまいます。これは、自動ドアに手で鍵をかけてしまうような状態です。
見た目を切り替えたい場合は、アコーディオンやモーダルそのものではなく、外側の箱に表示ユーティリティを使うのが安全です。
<div class="d-none d-md-block">
<div class="accordion">
表示を切り替えたい内容
</div>
</div>
ブラウザ表示
5. レスポンシブ表示と相性の考え方
レスポンシブとは、画面サイズに応じて表示を変えることです。スマートフォンでは隠して、パソコンでは表示する、といった使い方ができます。
Bootstrapの表示ユーティリティには、画面サイズごとの指定があります。これを使えば、アコーディオンやモーダルを壊さずに安全に制御できます。
<div class="d-block d-lg-none">
スマートフォンだけ表示
</div>
<div class="d-none d-lg-block">
パソコンだけ表示
</div>
ブラウザ表示
6. 初心者がよくやってしまう失敗例
よくある失敗として、モーダル本体にd-noneを付けてしまい、ボタンを押しても反応しないケースがあります。また、アコーディオンの中身に強制的な非表示を設定してしまうと、開閉ができなくなります。
動かないと感じたときは、表示ユーティリティを付けすぎていないかを確認すると解決しやすいです。
7. 表示制御を安全に行うための考え方
Bootstrapの部品は、見た目と動きをセットで考えることが大切です。動きを持つ部品には、無理に表示ユーティリティを直接当てないというルールを覚えておくと安心です。
まずはBootstrapに任せて動かし、どうしても必要な場合だけ外側で表示を制御する。この考え方が、初心者にとって一番失敗しにくい方法です。
まとめ
ここまでBootstrapのアコーディオンとモーダル、そして表示ユーティリティについて詳しく見てきました。本記事の内容を振り返ると、Bootstrapは見た目を整えるためのCSSフレームワークであると同時に、JavaScriptによって動きを制御する仕組みも含んでいることが分かります。特にアコーディオンやモーダルは、クリックやボタン操作によって表示と非表示を切り替える代表的なコンポーネントであり、初心者の方が最初につまずきやすいポイントでもあります。
表示ユーティリティは、d-noneやd-blockのようなクラスを使って、要素を簡単に隠したり表示したりできる便利な機能です。レスポンシブデザインと組み合わせることで、スマートフォンでは表示しない、パソコンでは表示する、といった柔軟な画面構成が可能になります。一方で、アコーディオンやモーダルの本体に直接表示ユーティリティを指定してしまうと、Bootstrapが内部で行っている表示制御と競合し、正しく動作しなくなることがあります。
重要なのは、動きを持つBootstrapコンポーネントは、Bootstrap自身に表示制御を任せるという考え方です。見た目を切り替えたい場合は、アコーディオンやモーダルそのものではなく、外側のラッパー要素に表示ユーティリティを指定することで、安全に制御できます。この考え方を身につけることで、表示されない、クリックしても反応しない、といったトラブルを大幅に減らすことができます。
また、レスポンシブ対応を行う際には、画面サイズごとの表示ユーティリティを活用することがポイントです。Bootstrapでは、画面幅に応じたクラスが用意されており、これを正しく使うことで、アコーディオンやモーダルの動作を壊さずに、利用者にとって見やすい画面を作ることができます。初心者の方は、まずは基本的なクラスの意味を理解し、小さなサンプルから試していくことが大切です。
以下は、これまで学んだ考え方を踏まえた、安全な表示制御のサンプル例です。Bootstrapのアコーディオンを、画面サイズに応じて表示切り替えする場合の基本形として参考にしてください。
<div class="d-none d-md-block">
<div class="accordion" id="safeAccordion">
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button" data-bs-toggle="collapse" data-bs-target="#safeBody">
安全なアコーディオン
</button>
</h2>
<div id="safeBody" class="accordion-collapse collapse">
<div class="accordion-body">
表示ユーティリティは外側で制御します
</div>
</div>
</div>
</div>
</div>
ブラウザ表示
生徒
今日の記事を読んで、Bootstrapのアコーディオンやモーダルは、ただ表示を切り替えているだけではなくて、内部でちゃんと仕組みが動いているんだと分かりました。
先生
そうですね。見た目だけでなく、動きもセットで用意されているのがBootstrapの特徴です。だからこそ、外から強引に非表示にすると、うまく動かなくなることがあります。
生徒
表示ユーティリティは便利ですが、アコーディオンやモーダルの本体には使わない方がいい、という理由がよく分かりました。
先生
その理解はとても大切です。外側の要素で表示を制御する、というルールを覚えておけば、初心者でも安心してレイアウトを作れます。
生徒
レスポンシブ対応も、表示ユーティリティをうまく使えば簡単にできそうですね。
先生
その通りです。まずは基本を守りながら、小さなサンプルで試していくことが、Bootstrapを理解する一番の近道ですよ。
【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を楽しみながら、一緒に学びましょう!
各回少人数・マンツーマン形式で徹底サポート
このセミナーの詳細・お申し込みはこちら