Definition
The <details> tag creates a disclosure widget, that if clicked to an ‘open’ state, will show additional information. A summary or label can be specified with a <summary> element.
Example
<details>
<summary>Label</summary>
Insert your additional information here.
</details>Label
Insert your additional information here.Usage
- The
<details>element takes one<summary>element, followed by normal flow content. - Both the opening and closing tag are required.
- If you fail to include a
<summary>child element the browser will provide it’s own legend. In English this would be “Details”. For example:<details> Insert your additional information here. </details>Insert your additional information here.
Attributes
The <details> element supports the Global Attributes, as well as the following:
openThe
openattribute is a boolean attribute, which if present indicates that both the summary and detail information should be shown to the user. An example is as follows:<details open> <summary>Detail</summary> Text summary describing more about the detail. </details>Detail
Text summary describing more about the detail.
Events
The <details> element supports the Global events, as well as the following:
toggleThe
toggleevent can be used to detect when the widget changes state:details.addEventListener("toggle", event => { if (details.open) { /* the element is toggled open */ } else { /* the element is toggled closed */ } });
Best Practices
- The
openattribute is added and removed automatically depending on the state of the element. As such, it can be targeted by CSS and styled depending on it’s state. For example:<style> details[open] > summary { color: green; } </style> <details> <summary>Server status</summary> <p>All servers are operating normally.</p> </details>
Specification
Browser Support
Desktop
| Chrome | Edge | Firefox | IE | Opera | Safari |
|---|---|---|---|---|---|
| Yes | Yes | Yes | No | Yes | Yes |
Mobile
| Android Webview | Chrome Android | Firefox Android | Opera Android | iOS Safari | Samsung Internet |
|---|---|---|---|---|---|
| Yes | Yes | Yes | Yes | Yes | Yes |
