De nombreuses bibliothèques JavaScript sont développées pour nous fournir des widgets interactifs supplémentaires sur les sites Web. De même, HTML5 a également interprété un certain nombre de composants interactifs populaires pour en faire des fonctionnalités Web natives. Dans ce post, nous allons examiner un élément appelé
(et ce faisant, le
élément) qui nous donne un widget interactif semblable à un accordéon.
et
le
l'élément peut être utilisé n'importe où dans le cadre du . Pour donner un exemple simple, nous pouvons l’ajouter de la manière suivante:
Lorem ipsum dolor sit amet, consectetur elipisicing elit. Voluptas, impedit.
L'exemple ci-dessus montre le
élément contenant un paragraphe, soulignant sa similarité avec d'autres éléments de sectionnement HTML. Il définit une section sémantique qui peut à son tour contenir des éléments enfants, tels que des images avec le élément, éléments de forme comme
et
, et même imbriquer d'autres tableaux de
.
La seule différence significative serait dans la façon dont les navigateurs affichent cet élément sur le front-end. Les navigateurs compatibles tels que Chrome, Safari et la dernière version d’Opera l’afficheront avec un petit triangle et un Détail ligne sur le côté.
le
element fonctionne comme un widget accordéon en ce sens que son contenu sera initialement masqué. Le fait de basculer la flèche ou de cliquer n'importe où alignant horizontalement la flèche révélera le contenu masqué. Nous sommes également en mesure de le mettre en évidence à l'aide du Languette clé et la Espace ou la Entrer clé pour le basculer.
Remarque: AccessibilitéCulture a couvert l’accessibilité de manière approfondie dans les lecteurs d’écran et les détails / résumé.
Après avoir ouvert l’élément details, si vous regardez maintenant la source avec les outils de développement, vous constaterez que le navigateur a ajouté le ouvrir
attribuer alors qu'il est dans cet état. Nous pouvons réellement ajouter le ouvrir
attribuer dans le
manuellement pour afficher le contenu ouvert par défaut.
Lorem ipsum dolor sit amet, consectetur elipisicing elit. Voluptas, impedit.
le
navires élément avec un élément appelé
; ces deux sont destinés à être utilisés en conjonction, mais en utilisant le
l'élément est totalement optionnel.
Alors, que se passe-t-il quand vous l'utilisez??
Bonjour le monde
Lorem ipsum dolor sit amet, consectetur elipisicing elit. Voluptas, impedit.
Étant donné l'exemple ci-dessus, la valeur par défaut Détail sera remplacé par le Bonjour le monde.
Comme mentionné, le
L'élément peut contenir d'autres éléments imbriqués.
éléments, comme si:
Bonjour le monde
Lorem ipsum dolor sit amet, consectetur elipisicing elit. Voluptas, impedit.
Salut comment ca va?
Lorem ipsum dolor sit amet, consectetur elipisicing elit. Voluptas, impedit.
Cela pose un problème visuel (ce qui ne serait pas le cas avec, par exemple, les listes imbriquées) le style par défaut du navigateur. Comme vous pouvez le voir ci-dessous, l'élément imbriqué est aligné à gauche avec le parent qui masque la vraie hiérarchie:
Ceci est néanmoins facilement résolu en ajoutant des styles simples. Voyons comment nous appelons ces éléments.
le
et
les éléments peuvent être stylés comme n'importe quel autre élément de bloc; sélectionnez-les dans le sélecteur d'élément, une classe ou un identifiant et empilez une pile de propriétés pour la nommer.
détails padding: 15px; couleur de fond: # f6f7f8; marge inférieure: 20 px;
De plus, vous pouvez utiliser le sélecteur d'attribut pour spécifier des styles pour l'état ouvert..
détails [open] / * le style va ici * /
le
L'élément peut aussi être stylé. En parlant de cela, si vous survolez un élément cliquable tel qu'un bouton ou une ancre, le curseur se transformera normalement en un pointeur. Mais ce n'est pas le cas pour le
élément qui est également cliquable. Au lieu de cela, le curseur se transformera en texte
le curseur, ce qui semble légèrement naturel, vous pouvez donc modifier le style par défaut en définissant le curseur comme aiguille
ainsi.
summary curseur: pointeur;
Et maintenant, pour la question que vous aviez envie de poser: pouvez-vous nommer le petit triangle? Il n'y a pas encore de standard, mais Webkit a utilisé un pseudo-élément à cette fin., :: - webkit-details-marker
. Grâce à cela, nous sommes en mesure de personnaliser les styles de flèche par défaut tels que la couleur, la couleur d'arrière-plan, ainsi que la taille de la flèche..
summary :: - webkit-details-marker color: #fff; couleur de fond: # 000;
Malheureusement, remplacer la flèche directement à travers le :: - webkit-details-marker
n'est pas possible - du moins, au moment de la rédaction. Le seul moyen viable consiste à le remplacer en utilisant le ::avant
ou ::après
.
summary :: - webkit-details-marker display: none; summary: before content: "\ 2714"; / * la nouvelle icône * / color: # 696f7c; marge droite: 5px;
La prise en charge du navigateur pour ces deux éléments a été bien améliorée ces deux dernières années. En 2011 et 2012, Chrome était le seul navigateur capable de rendre
et
- bien que la mise en œuvre ait souffert de certains problèmes d'accessibilité. Safari and Opera a récemment rejoint le club.
Donc, en ce qui concerne Firefox et Internet Explorer, il existe deux options de remplissage multiple pour imiter les fonctionnalités, comme celle développée par Mathias Bynens, jQuery Details. Bien que ce polyfill repose apparemment sur jQuery, la taille du fichier est beaucoup plus petite que celle de la bibliothèque de la bibliothèque jQuery UI..
Une fois implémenté, style comme toujours.
résumé: avant contenu: "\ 25B8"; / * Caractère unicode du petit triangle * / color: # 000; marge droite: 5px;
Vous trouverez plus d’informations sur le support du navigateur sur caniuse.com.
Vous aurez probablement déjà vu ces éléments à l'état sauvage. Lors de vos achats en ligne, par exemple, certains sites Web regroupent les longues descriptions de leurs produits dans un accordéon. Sinon, ils pourraient l’utiliser dans la barre latérale pour filtrer les résultats, comme Payless, par exemple..
le
et
Les éléments sont également parfaitement adaptés à l’organisation des éléments de la FAQ et des éléments de la liste de fonctions généralement présents dans un tableau de prix. J'ai créé une démo que vous pouvez voir ici et que vous pouvez abuser.
Comme Aaron Lumsden l’a dit dans cet article
"Les sites Web deviennent de plus en plus axés sur les données et les applications"
donc ce nouvel élément est très apprécié. Un jour, peut-être qu'avec l'avènement des composants Web, la création d'un site Web ou d'une application Web dépendra moins des bibliothèques JavaScript lors de l'ajout d'un simple widget, tel qu'un accordéon..
Alors, avez-vous déjà utilisé
et
dans votre site web?