details要素は、詳細情報を提供する開閉式のウィジェットを表す。
このウィジェットはデフォルトでは閉じられた状態になっていて、ユーザーのリクエストに応じて表示されることになる。
この要素内の先頭にsummary要素を配置すると、詳細情報のキャプション等を示すことができる。
<details open>
<summary>詳細1を見る</summary>
<p>詳細な情報1。</p>
</details>
<details>
<summary>詳細2を見る</summary>
<p>詳細な情報2。</p>
</details>
<details>
<summary>詳細3を見る</summary>
<p>詳細な情報3。</p>
</details>
open属性について
open属性は、詳細情報が表示された状態を指定する。この属性が省略された場合は、非表示の状態がデフォルトになる。
CSSのセレクタはdetails[open]というような指定になる。
summary要素の使用について
summary要素を使用することで、詳細情報のキャプション、要約、説明文などを示すことができる。
この要素を使用する場合は、details要素内の先頭に配置する。
summary要素を省略した場合は、キャプション部分に詳細と表示される。(Chrome、Edge、Firefoxで確認)
details要素の組み合わせ
詳細情報に階層を持たせたい場合は、以下のようにdetails要素を入れ子にする。
<details>
<summary>詳細を見る</summary>
<p>詳細な情報</p>
<details>
<summary>より詳しく見る</summary>
<p>より詳細な情報</p>
</details>
</details>
summaryタグのデフォルト黒三角を消す
デフォルトの状態では、黒い三角がアイコンとして表示される。この黒三角を消す場合、ブラウザによって手法が違うので注意する。
/* Firefox、Chrome、Edgeの場合 */
details summary {
list-style: none;
}
/* Safari、Operaの場合 */
details summary::-webkit-details-marker {
display: none;
}
/* ついでにカーソルがポインターになるようにしておく */
details summary {
cursor: pointer;
}