こんにちは朱夏です。
今回もパララックスサイトのテンプレートを作っていきます。
今回は、Bootstrapのアコーディオン機能を使ってFAQを実装してみたいと思います。
参考サイトはこちらです。
コード
コードはこちらです。
HTMLから。
<!-- エリア2 --> <div class="background bg-02" id="area2"> <div class="mx-5"> <!-- エリア2タイトル --> <div class=" text-light border-bottom border-lightcard area2title"> <h1>FAQ</h1> <h2>アコーディオン式のFAQ</h2> </div> <!-- エリア2タイトル END --> <!-- アコーディオン --> <div class="accordion" id="accordion" role="tablist" aria-multiselectable="true"> <!-- FAQ1 --> <div class="card"> <div class="card-header" role="tab" id="headingOne"> <h5 class="mb-0"> <a class="collapsed text-body stretched-link text-decoration-none" data-toggle="collapse" href="#collapseOne" role="button" aria-expanded="true" aria-controls="collapseOne"> Q1:一つ目の質問です </a> </h5> </div> <div id="collapseOne" class="collapse show" role="tabpanel" aria-labelledby="headingOne" data-parent="#accordion"> <div class="card-body"> A1:一つ目の質問の答えです </div> </div> </div> <!-- FAQ1 END --> <!-- FAQ2 --> <div class="card"> <div class="card-header" role="tab" id="headingTwo"> <h5 class="mb-0"> <a class="collapsed text-body stretched-link text-decoration-none" data-toggle="collapse" href="#collapseTwo" role="button" aria-expanded="false" aria-controls="collapseTwo"> Q2:二つ目の質問です </a> </h5> </div> <div id="collapseTwo" class="collapse" role="tabpanel" aria-labelledby="headingTwo" data-parent="#accordion"> <div class="card-body"> A2:二つ目の質問の答えです </div> </div> </div> <!-- FAQ2 END --> <!-- FAQ3 --> <div class="card"> <div class="card-header" role="tab" id="headingThree"> <h5 class="mb-0"> <a class="collapsed text-body stretched-link text-decoration-none" data-toggle="collapse" href="#collapseThree" role="button" aria-expanded="false" aria-controls="collapseThree"> Q3:三つ目の質問です </a> </h5> </div> <div id="collapseThree" class="collapse" role="tabpanel" aria-labelledby="headingThree" data-parent="#accordion"> <div class="card-body"> A3:三つ目の質問の答えです </div> </div> </div> <!-- FAQ3 END --> <!-- FAQ4 --> <div class="card"> <div class="card-header" role="tab" id="headingFour"> <h5 class="mb-0"> <a class="collapsed text-body stretched-link text-decoration-none" data-toggle="collapse" href="#collapseFour" role="button" aria-expanded="false" aria-controls="collapseFour"> Q4:四つ目の質問です </a> </h5> </div> <div id="collapseFour" class="collapse" role="tabpanel" aria-labelledby="headingFour" data-parent="#accordion"> <div class="card-body"> A4:四つ目の質問の答えです </div> </div> </div> <!-- FAQ4 END --> <!-- FAQ5 --> <div class="card"> <div class="card-header" role="tab" id="headingFive"> <h5 class="mb-0"> <a class="collapsed text-body stretched-link text-decoration-none" data-toggle="collapse" href="#collapseFive" role="button" aria-expanded="false" aria-controls="collapseFive"> Q5:五つ目の質問です </a> </h5> </div> <div id="collapseFive" class="collapse" role="tabpanel" aria-labelledby="headingFive" data-parent="#accordion"> <div class="card-body"> A5:五つ目の質問の答えです </div> </div> </div> <!-- FAQ5 END --> </div> <!-- アコーディオン END --> </div> </div> <!-- エリア2 END -->
CSSはこちらです。
.area2title { text-align: center; text-shadow: 1px 1px 1px black; }
解説
それでは、解説していきます。
CSSはエリア2のタイトル部分を見やすくするために影を付けているのと、中央寄せの指定をしています。
<div class=”accordion” id=”accordion” role=”tablist” aria-multiselectable=”true”>
アコーディオンはこのclass=”accordion”などを付与しているdivタグが最上位の親要素になります。
この中に、Bootstrapのカード機能で書いたFAQを質問内容だけ残して折り畳んで、繰り返し積み重ねていけば完成です。
Bootstrap4移行ガイドで紹介されているものでは、アコーディオンの1つ目が展開された状態が初期状態になっているため、2つ目以降と書き方が違います。
1つ目の記述をコピーして増やしたりすると、初期状態が全て展開された状態になります。
標準のアコーディオン機能に追加で、テキスト部分以外をクリックしても反応する様にしたことと、リンクテキストからアンダーバーなどの装飾を解除しました。
実装するには、<a>タグのclassに下記を追加すればOKです。
-
- stretched-link(伸長リンク)
- text-decoration-none(リンクテキストの装飾削除)
あとがき
今回はBootstrap4のアコーディオン機能でFAQを実装してみました。
同じ記述を繰り返しているように見えて、1つ目だけ違う記述だったというのは要注意ですね。
課題については、今後の学習でクリアしていきます。
今回はここまでです。
次回もよろしくお願いします。