Bootstrapを用いたアコーディオンの作成方法
概要
Bootstrapを用いたアコーディオンの作成が思いのほか複雑だったので、備忘録として残しておきます。
accordionとは
ボタンを押すと隠れていた部分が表示されるような仕組みのこと。
よくあるのは、質問に対する回答集などですね。
ページを読み込んだ時点では質問部分のみが表示されていて、質問文をクリックすると回答が表示されるというものです。
accordionの骨格
コードが複雑になるのでまずはコードの骨格部分から。
骨格は以下の形です。
- 全体をdiv要素で囲み、.accordionをつける。
- その中にdiv要素一つ作り、.accordion-itemをつける。
- .accordion-itemの中にdiv要素を二つ作り、一つ目の方に.accordion-headerを、もう一方に.accordion-collapse .collapseつける。
- .accordion-headerをつけた方が最初から表示されている部分、何もつけていない方が最初は隠れている部分になる。
- .accordion-headerの内部にbutton要素を作り、".accordion-button .collapsed"を設定する。
表示させたい文字は、.accordion-buttonの中に書く。 - .accordion-collapseをつけた方の中に.accordion-bodyを作成し、その中にaccordionで展開したい文字を記述する。
ここまでが、部品の作成になります。
次に、これらを関連付けて、ボタン操作で表示が切り替わるようにしていきます。
表示切り替えのための部品の関連付け
関連付けに関しては、各種部品にidを設定して行います。
また、accordion以外ではあまり使用しないような属性も登場します。
以下、手順です。
- accordion全体、accordion-header, collapseそれぞれにidを設定する。
ここではそれぞれ#accordion, #headingA, #collapseAとする。 - .accordion-buttonにdata-toggle="collapse", data-target=#collapseA", arial-controls="collapseA"arial-expanded="false"を設定。
- .collapseにはarial-labelledby="headingA", data-parent="#accordion"を設定。
#をつけるところと付けないところがあるので注意しましょう。