OUJOOD.COM
Définition et utilisation de la balise <details>
LES BALISES HTMLLa balise <details> spécifie que l'utilisateur peut afficher ou masquer des détails supplémentaires sur demande.
La balise <details> permet de créer un widget interactif que l'utilisateur peut ouvrir et fermer. Toute sorte de contenu peut être mise à l'intérieur de la balise <details>.
Le contenu d'un élément <details> n'est pas visible par défaut, sauf si l'attribut open
est défini.
Exemple avec l'élément <details>
Exemple : 📋 Copier le code
<!DOCTYPE html> <html lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Exemple balise details</title> <style> details { border: 1px solid #ddd; border-radius: 4px; padding: 10px; margin: 10px 0; } summary { font-weight: bold; cursor: pointer; padding: 5px; background-color: #f5f5f5; border-radius: 3px; } summary:hover { background-color: #e9e9e9; } </style> </head> <body> <details> <summary>Copyright 2025</summary> <p>Tous droits réservés.</p> <p>Tout le contenu et les graphiques sur ce site sont une propriété réservée.</p> </details> <details open> <summary>Informations techniques</summary> <ul> <li>Version HTML5</li> <li>Compatible tous navigateurs modernes</li> <li>Accessible au clavier</li> </ul> </details> <details> <summary>FAQ - Questions fréquentes</summary> <h4>Comment utiliser cette balise ?</h4> <p>Placez le contenu à masquer à l'intérieur de <details> et utilisez <summary> pour le titre.</p> <h4>Est-ce accessible ?</h4> <p>Oui, la balise <details> est nativement accessible et navigable au clavier.</p> </details> <p><strong>Note :</strong> La balise <details> est maintenant supportée par tous les navigateurs modernes.</p> </body> </html>
Support des navigateurs
La balise <details> est maintenant prise en charge par tous les navigateurs modernes. Le support était initialement limité à Chrome et Safari, mais s'est étendu à Firefox, Opera et Edge.
Différences entre HTML 4.01 et HTML5
La balise <details> est nouvelle en HTML5. Elle n'existait pas en HTML 4.01.
Astuce : La balise <summary> est utilisée pour spécifier un en-tête visible pour le contenu détaillé.
Ce titre peut être cliqué pour afficher/masquer les détails.
Ses attributs
Nouveau : Nouveauté HTML5.
Attribut | Valeur | Description |
---|---|---|
open Nouveau | open | Spécifie que les détails soient visibles (ouverts) à l'utilisateur |
L'attribut open en détail
Définition et utilisation de l'attribut open
L'attribut open est un attribut booléen.
Lorsqu'il est présent, il indique que les détails doivent être visibles (ouverts) à l'utilisateur.
Syntaxe :
<details open>
<details open>
<details open="open">
<details open="">
Exemple d'un élément <details> ouvert par défaut
Exemple : 📋 Copier le code
<!DOCTYPE html> <html lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Exemple attribut open</title> <style> details { border: 1px solid #ccc; padding: 10px; margin: 10px 0; border-radius: 5px; } summary { font-weight: bold; cursor: pointer; padding: 5px; background-color: #ADCA48; border-radius: 3px; } </style> </head> <body> <details open> <summary>Menu Général 1 (ouvert par défaut)</summary> <ul> <li><a href="#">Sous menu 1</a></li> <li><a href="#">Sous menu 2</a></li> <li><a href="#">Sous menu 3</a></li> </ul> </details> <details> <summary>Menu Général 2 (fermé par défaut)</summary> <ul> <li><a href="#">Sous menu 1</a></li> <li><a href="#">Sous menu 2</a></li> </ul> </details> <p><strong>Note :</strong> La balise <details> est maintenant supportée par tous les navigateurs modernes.</p> </body> </html>
Support des navigateurs pour l'attribut open
L'attribut open est supporté par tous les navigateurs qui supportent la balise <details>.
Cas d'utilisation et bonnes pratiques
- FAQ : Questions avec réponses extensibles
- Documentation : Sections techniques détaillées
- Formulaires : Options avancées masquées
- Navigation : Menus accordéon
- Contenu long : Résumés avec détails
- Utilisez toujours
<summary>
comme premier enfant - Fournissez un titre descriptif dans summary
- Testez l'accessibilité avec la navigation clavier
- Évitez d'imbriquer trop de details
- Considérez les performances avec beaucoup de contenu
Événements JavaScript
La balise <details>
déclenche un événement toggle
à chaque ouverture/fermeture :
document.querySelector('details').addEventListener('toggle', function(e) { if (e.target.open) { console.log('Détails ouverts'); } else { console.log('Détails fermés'); } });
Attributs globaux
La balise <details> prend également en charge les attributs globaux HTML.
Attributs d'événement
La balise <details> prend également en charge les attributs d'événement HTML.
Retour à l'accueil du site
Par carabde 10 mars 2014 (mis à jour janvier 2025)