FAQ セクション(アコーディオン)

レイアウト Easy #css #section #faq #accordion

よくある質問を縦に積み、クリックで開閉できるアコーディオンです。最大の特徴は JavaScript を一切使わず、HTML 標準の details と summary 要素だけで開閉を実現している点です。

▶ プレビュー

解説

よくある質問を縦に積み、クリックで開閉できるアコーディオンです。最大の特徴は JavaScript を一切使わず、HTML 標準の detailssummary 要素だけで開閉を実現している点です。標準機能なのでキーボード操作やアクセシビリティに強く、最初の項目には open 属性を付けて開いた状態で表示しています。デフォルトの三角マーカーは ::-webkit-details-marker を消し、summary::after の「+」記号を開閉に合わせて rotate(45deg) で「×」風に回しています。影の変化にだけ transition を当てています。

使う場面

  • 料金・解約・トライアルなどの購入前の不安解消
  • サポートページのよくある質問一覧
  • LP 終盤で疑問をまとめて答える Q&A ブロック

項目を増やすときは details ブロックを足すだけです。複数を同時に開かせたくない場合は各 details に同じ name 属性を付けると排他開閉になります。プラス記号の色や回転の見せ方は summary::after で調整できます。検索エンジンの FAQ 表示を狙うなら、質問と回答のテキストを正確に対応させ、画像ではなく文字で書くことが大切です。

使用例・適したシーン

  • コーポレートサイト構築
  • サービス LP
  • 採用ページ
  • 事業紹介資料 Web 版

よくある質問

クリックで複数の項目が同時に開かないようにできますか?
各 details に同じ name 属性を付けると、ラジオボタンのように 1 つ開くと他が閉じる排他動作になります。JavaScript は不要で、HTML の属性追加だけで切り替えられます。
開閉の動きにアニメーションを足せますか?
details 要素の開閉自体は標準では瞬時に切り替わります。このスニペットでは影とプラス記号の回転だけを transition で滑らかにしています。高さのアニメーションが欲しい場合は別途 CSS や JavaScript の追加が必要です。
追加日:2026-05-11
← すべてのスニペットへ戻る