details タグを利用したアコーディオンパネルのコードと表示結果

コモロー
質問: 折りたたみ可能なパネルの実装
HTMLページでクリックすると折りたたみができる枠を作成したいです。どういったコードを記述すればよいですか?

はじめに

details タグを利用したアコーディオンパネルのコードと表示結果を紹介します。
この記事ではJavaScriptやCSSを利用しない、detailsタグを利用した実装を紹介します。 機能はシンプルですがタグを記述するのみで実装できる方法です。

コード

以下のHTMLファイルを作成します。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
  <h1>アコーディオンパネルのデモ</h1>
  <details>
    <summary>コンテンツを表示</summary>
    <p>コンテンツ1です。</p>
    <p>コンテンツ2です。</p>
    <p>コンテンツ3です。</p>
    <div style="height:400px;background-color:#ffd800;">大きな枠です。</div>
    <p>コンテンツ4です。</p>
    <p>コンテンツ5です。</p>
    <p>コンテンツ6です。</p>
    <div style="height:400px;background-color:#b6ff00;">中サイズの枠です。</div>
    <p>コンテンツ7です。</p>
    <p>コンテンツ8です。</p>
    <p>コンテンツ9です。</p>
    <p>コンテンツ10です。</p>
  </details>
</body>
</html>

解説

detailsタグがアコーディオンパネルになります。summaryタグに閉じられている状態の見出しを記述します。detailsタグ内にコンテンツを記述します。

実行結果

上記のHTMLファイルをWebブラウザで表示します。下図のページが表示されます。
[コンテンツを表示]部分をクリックします。
details タグを利用したアコーディオンパネルのコードと表示結果:画像1

クリックすると内部のコンテンツが表示された状態になります。
details タグを利用したアコーディオンパネルのコードと表示結果:画像2
details タグを利用したアコーディオンパネルのコードと表示結果:画像3

もう一度クリックすると、コンテンツが折りたたまれた状態になります。
details タグを利用したアコーディオンパネルのコードと表示結果:画像4

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2025-05-04
Copyright © 1995–2025 iPentec all rights reserverd.