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)