アコーディオンQ&A

インタラクション Easy #accordion #faq #qa #toggle #disclosure

このアコーディオンQ&Aは、定義リストの dl / dt / dd を使い、質問をクリックすると回答が開閉するシンプルな開示パターンです。JavaScript は data-acc 属性を持つ dt にクリックイベントを付け、直後の回答に is-open クラスをトグルするだけ。

▶ プレビュー

解説

このアコーディオンQ&Aは、定義リストの dl / dt / dd を使い、質問をクリックすると回答が開閉するシンプルな開示パターンです。JavaScript は data-acc 属性を持つ dt にクリックイベントを付け、直後の回答に is-open クラスをトグルするだけ。プラス記号は擬似要素 ::after で描き、開いた状態では rotate(45deg) でバツ印に変わります。回答の高さは max-height の遷移で滑らかに広がります。

使う場面

  • 料金・納期・修正回数などをまとめる「よくある質問」セクション
  • サービス紹介ページで補足情報を畳んでおきたいとき
  • サポートページやヘルプセンターの項目一覧

質問文や回答は dt / dd をそのまま増減すれば対応できます。色を変えたい場合はプラス記号の color と下線の border-bottom を調整してください。アクセシビリティを高めるなら dt をボタン化し aria-expanded を付与すると、キーボード操作やスクリーンリーダーへの伝達が改善します。回答が長いページでは初期状態をすべて閉じておくと、縦の見通しがよくなります。

よくある質問

質問項目を増やすにはどうすればいいですか?
HTMLのdlの中にdt(質問)とdd(回答)のペアを追加し、dtにdata-acc属性を付けるだけで動きます。JavaScriptは属性を持つ要素を自動で拾うため、書き換えは不要です。
開閉アイコンの色やデザインは変えられますか?
プラス記号は擬似要素の::afterで作っているので、CSSのcontentで文字を変え、colorで色を調整できます。矢印にしたい場合はcontentを別の記号やSVGに差し替えてください。
追加日:2026-05-23
← すべてのスニペットへ戻る