Maison >interface Web >tutoriel CSS >HTML natif : l'accordéon revisité
Il y a six ans, j'ai exploré le
Dans cet article, nous reviendrons sur
Les
Voici un exemple simple :
<details> <summary>Read more</summary> Some text to be hidden. </details>
Cliquer sur le résumé bascule la visibilité du contenu associé. Aucun JavaScript requis !
Pour imiter le comportement traditionnel de l'accordéon, où une seule section est ouverte à la fois, vous pouvez utiliser l'attribut name sur votre page
<details name="exclusive"> <summary>Section 1</summary> <p>Content for section 1.</p> </details> <details name="exclusive"> <summary>Section 2</summary> <p>Content for section 2.</p> </details>
Ce comportement est natif et fonctionne de manière transparente dans les navigateurs modernes !
Pour rendre les transitions d'ouverture et de fermeture plus fluides, nous pouvons utiliser des propriétés CSS modernes telles que interpolate-size et transition-behavior.
Voici un exemple complet du CSS utilisé dans la démo :
details { interpolate-size: allow-keywords; overflow: clip; margin-top: 0.125em; border: 1px solid #dddddd; background: #ffffff; color: #333333; border-radius: 3px; } details summary { display: block; cursor: pointer; position: relative; padding: 0.5em 0.5em 0.5em 0.7em; background: #ededed; color: #2b2b2b; border-radius: 3px 3px 0 0; } details:not([open]) summary:hover, details:not([open]) summary:focus { background: #f6f6f6; color: #454545; } details[open] summary { outline: 1px solid #003eff; background: #007fff; color: #ffffff; } details[open]::details-content { height: auto; } details::details-content { height: 0; overflow-y: clip; transition: content-visibility 475ms allow-discrete, height 475ms; } details main { padding: 1em 2.2em; }
Voici la mise en œuvre complète :
Pour les navigateurs sans support, les animations retombent gracieusement et l'accordéon reste fonctionnel sans les transitions fluides.
Les
Merci beaucoup d'avoir lu. Si vous souhaitez vous connecter avec moi en dehors de Dev, voici mes twitter, bsky et linkedin venez me dire bonjour ?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!