Bootstrap - アコーディオン:ビギナーズガイド

こんにちは、未来のウェブ開発者たち!今日は、Bootstrapのアコーディオンの素晴らしい世界に飛び込みます。近所の親切なコンピュータ教師として、この旅を案内するのが楽しみです。コードを書いたことがない人も心配しないでください - から始めて、少しずつステップアップしていきます!

Bootstrap - Accordion

Bootstrap アコーディオンとは?

本題に入る前に、ウェブデザインにおけるアコーディオンとは何か話しましょう。音楽のアコーディオンを思い浮かべてください - 拡張して縮小し、異なるセクションを表示します。这正是Bootstrap アコーディオンがウェブページで行うことです!コンテンツを整理するのに非常に便利で、ユーザーが必要に応じてセクションを表示または非表示にすることができます。

仕組み

Bootstrap アコーディオンはHTML、CSS、JavaScript(心配しないでください、Bootstrapが大部分のJavaScriptを処理してくれます!)を使用して構築されています。クリックで展開または折り畳み可能な折り畳み要素のシリーズで構成されています。

以下に主要なコンポーネントを紹介します:

  1. 外側のコンテナ(通常は<div>で、クラスaccordionを持っています)
  2. 各アコーディオンアイテム(各々が<div>で、クラスaccordion-itemを持っています)
  3. 各アイテムのヘッダー(通常は<h2>要素で、クラスaccordion-headerを持っています)
  4. ヘッダー内のボタンで展開/折り畳みをトリガーします
  5. クリックで表示/非表示になるコンテンツパネル(<div>要素で、クラスaccordion-collapsecollapseを持っています)

では、実際に見てみましょう!

基本例

以下はシンプルなBootstrap アコーディオンの例です:

<div class="accordion" id="basicAccordion">
<div class="accordion-item">
<h2 class="accordion-header" id="headingOne">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
アコーディオンアイテム #1
</button>
</h2>
<div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#basicAccordion">
<div class="accordion-body">
最初のアコーディオンアイテムのコンテンツです。
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="headingTwo">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
アコーディオンアイテム #2
</button>
</h2>
<div id="collapseTwo" class="accordion-collapse collapse" aria-labelledby="headingTwo" data-bs-parent="#basicAccordion">
<div class="accordion-body">
2番目のアコーディオンアイテムのコンテンツです。
</div>
</div>
</div>
</div>

以下に分解します:

  1. <div>accordionクラスを持つメインコンテナから始めます。
  2. 各折り畳みセクションにはaccordion-itemクラスを持つ<div>があります。
  3. 各アイテムにはヘッダー(accordion-headerクラスを持つ<h2>要素)があります。
  4. ヘッダーには展開/折り畳みアクションをトリガーするボタンがあります。
  5. コンテンツは別の<div>にあり、accordion-collapsecollapseクラスを持っています。

プロヒント:最初のアイテムがclass="accordion-collapse collapse show"aria-expanded="true"を持っていることに注意してください。これは、ページが読み込まれたときにデフォルトで開いていることを意味します。

フラッシュアコーディオン

境界線なしのよりシンプルな外観を望む場合、Bootstrapのフラッシュアコーディオンがあなたをカバーします:

<div class="accordion accordion-flush" id="flushAccordion">
<div class="accordion-item">
<h2 class="accordion-header" id="flush-headingOne">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-collapseOne" aria-expanded="false" aria-controls="flush-collapseOne">
フラッシュアコーディオンアイテム #1
</button>
</h2>
<div id="flush-collapseOne" class="accordion-collapse collapse" aria-labelledby="flush-headingOne" data-bs-parent="#flushAccordion">
<div class="accordion-body">フラッシュアコーディオンの最初のアイテムです。</div>
</div>
</div>
<!-- 必要に応じて他のアイテムを追加 -->
</div>

ここで键となる違いは、メインコンテナにaccordion-flushクラスを追加することです。これにより、デフォルトの背景色と一部の境界線が削除され、よりクリーンな外観になります。

常に開いたアコーディオン

デフォルトでは、Bootstrap アコーディオンは新しいアイテムが開かれると他のアイテムが閉じます。しかし、複数のアイテムを開いたままにしたい場合はどうしますか?以下のようにします:

<div class="accordion" id="alwaysOpenAccordion">
<div class="accordion-item">
<h2 class="accordion-header" id="headingAlwaysOne">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseAlwaysOne" aria-expanded="true" aria-controls="collapseAlwaysOne">
常に開いたアイテム #1
</button>
</h2>
<div id="collapseAlwaysOne" class="accordion-collapse collapse show" aria-labelledby="headingAlwaysOne">
<div class="accordion-body">このアイテムは他のアイテムが開かれても開いたままです。</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="headingAlwaysTwo">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseAlwaysTwo" aria-expanded="false" aria-controls="collapseAlwaysTwo">
常に開いたアイテム #2
</button>
</h2>
<div id="collapseAlwaysTwo" class="accordion-collapse collapse" aria-labelledby="headingAlwaysTwo">
<div class="accordion-body">このアイテムも独立して開いたままです。</div>
</div>
</div>
</div>

ここでの秘密の材料は、コンテンツdivからdata-bs-parent属性を削除することです。これにより、アイテムが開かれたときに他のアイテムを自動的に閉じないように指示します。

アクセシビリティ

ウェブ開発におけるアクセシビリティは非常に重要です。Bootstrap アコーディオンには内蔵のアクセシビリティ機能がありますが、正しく使用することが重要です:

  1. アコーディオンヘッダーには適切なヘッダーレベル(<h2><h3>など)を使用します。
  2. ボタンにはaria-expanded属性を含めます(開いているときは"true"、閉じているときは"false")。
  3. ボタンにはaria-controlsを含め、コンテンツdivにリンクします。
  4. コンテンツdivにはaria-labelledbyを追加し、対応するヘッダーを参照します。

以下に主要なアクセシビリティ属性をまとめた表を示します:

属性 位置 目的
aria-expanded ボタン セクションが展開されているかどうかを示します
aria-controls ボタン ボタンがコンテンツにリンクしているかどうかを示します
aria-labelledby コンテンツdiv コンテンツが対応するヘッダーにリンクしているかどうかを示します

これらは単なる見せかけではありません。スクリーンリーダーや他の補助技術が正しくナビゲートするために依存しています。

結論

そして、ここまでで皆さんがBootstrap アコーディオンの世界に踏み出しました。基本的な構造からアクセシビリティの考慮まで、ウェブページ上の整理された、インタラクティブなコンテンツを作成するためのツールを手に入れました。

練習は完璧を生みます。自分でアコーディオンを作成し、スタイルを混ぜ合わせてみてください。そして、最も重要なのは、楽しむことです!ウェブ開発の新しい旋律に自分を合わせるかもしれません。(申し訳ありません、アコーディオンのジョークを抑えきれませんでした!)

ハッピーコーディング、次回までの間に知識を広げ続けてください - アコーディオンのように自分を拡張してください!

Credits: Image by storyset