To create collapsible sections on a web page, you can use the HTML5 <details></details>
and <summary></summary>
elements. The <details></details>
element represents a widget that the user can interact with to obtain additional information or controls. The <summary></summary>
element, which must be a direct child of the <details></details>
element, specifies the summary or label for the <details></details>
element.
Here's a basic example of how to use these elements:
<details> <summary>Click to expand</summary> <p>This is the content that will be shown when the user expands the section.</p> </details>
In this example:
<details>
element creates the collapsible widget.<summary>
element provides a label for the widget. Clicking on this label will toggle the visibility of the content within the <details>
element.<details>
element but outside the <summary>
element is what will be hidden or shown when the user interacts with the widget.You can place any HTML content inside the <details>
element, allowing for flexible and rich collapsible sections on your web page.
Using <details>
and <summary>
elements can significantly enhance user experience in several ways:
open
attribute on the <details>
element can also be used to set the initial state of the widget, which can be beneficial for accessibility.Yes, <details>
and <summary>
elements can be styled with CSS, allowing for a high degree of customization to match your website's design. Here's how you can style these elements:
<details>
element: You can change the appearance of the entire collapsible section using CSS. For example, you can set a border, background color, and padding:details { border: 1px solid #aaa; border-radius: 4px; padding: .5em .5em 0; } details[open] { padding: .5em; } details[open] summary { border-bottom: 1px solid #aaa; margin-bottom: .5em; }
<summary>
element: You can modify the look of the summary label. For instance, you can change the color, font, and add icons:summary { font-weight: bold; color: #333; } summary::marker { /* Hide default marker */ content: ""; } summary::before { /* Add custom marker */ content: "▶ "; font-size: .8em; } details[open] summary::before { content: "▼ "; }
::marker
pseudo-element can be used to style the default marker (usually a triangle), but browser support is limited. Using ::before
and ::after
pseudo-elements can be a more consistent way to add custom markers.summary:hover, summary:focus { color: #000; cursor: pointer; }
Remember that while you can style these elements, some browsers may have default styles that you'll need to override with your custom CSS.
While <details></details>
and <summary></summary>
are part of the HTML5 standard, there are some browser compatibility issues to consider:
::marker
pseudo-element, have limited browser support. You may need to use alternative methods, like ::before
and ::after
, to achieve consistent styling across browsers.<summary></summary>
to be styled with display: block
. You may need to use CSS to normalize these differences.You can check the latest browser compatibility information on resources like Can I Use? (caniuse.com) to stay updated on support for these HTML elements across different browsers.
The above is the detailed content of How do you use the <details> and <summary> elements to create collapsible sections?. For more information, please follow other related articles on the PHP Chinese website!