HTML5 の details/summary タグでアコーディオン (JavaScript/CSS不要)

コンテンツが多いページを作るとき、タイトルだけを表示してタイトルをクリックしたらアコーディオンで開閉するしくみを組み込むと閲覧しやすくなります。

例えば以下のようなものです。


パソコン教室受講についてのよくある質問

Q. 夕方以降や土日・祝日に受講することはできますか?

A. はい。受講できる時間は 8:30~22:00 で、土日・祝日も受講が可能です。

Q. 決められた曜日・時間に毎週通わなくてもよいのですか?

A. はい。受講される方一人ひとりのご都合に合うように受講日程を相談させていただきます。曜日・時間は週によって違ってもOKですし、通わない週があってもOKです。

Q. 最初に4時間の予約が必要ですか?

A. 原則的に事前に4時間分を予約していただきます。事前予約が難しい場合はその都度のご予約も可能ですが、余った時間は翌月に繰り越しできません。


通常、このようなアコーディオンを組み込むために JavaScript と CSS を使用しますが、そのほかに超お手軽なやり方が存在します。

それは、HTML5 の details タグと summary タグを使うやり方です。

このやり方の場合、上記の個々の質問のHTMLを以下のように記述します。

<details>
<summary>Q. 夕方以降や土日・祝日に受講することはできますか?</summary>
<p>A. はい。受講できる時間は 8:30~22:00 で、土日・祝日も受講が可能です。</p>
</details>

これだけです。JavaScript も CSS も使いません。

拍子抜けするほどかんたんですが、Internet Explorer と (Chromiumベースではない)Edge ではアコーディオンが開閉しません。開きっぱなしになります。

残念!! それじゃ使えないなぁ

・・・と思ってしまいそうですが、実際にこれらのブラウザで表示してみると、それが重大な問題ではないことがわかります。

そして、これらのブラウザは遅かれ早かれ消滅しますので、ある程度の見切り・妥協は許容範囲と考えてよいと思います。

そういう問題があることを理解した上で、このお手軽アコーディオンを使うのもひとつの選択肢ですね。

更新情報を受取る

ホームページでお困りのこと、お気軽にご相談ください

効果が出るホームページを格安料金で制作いたします。リニューアル、スマホ対応、SNS連携、SEO対策、常時SSL化などもおまかせください。ホームページのちょっとしたデザイン変更や表示不具合の修正、更新作業のお手伝いもしています。

お困りのこと、なんでもお気軽にご相談ください。