Dans cette vidéo je vous propose de partager une petite astuce pour imbriquer des liens.
Problème
Dans certaines situations on a besoin de créer une carte cliquable qui contient des liens internes. Malheureusement il n'est pas possible d'imbriquer des liens en HTML car les spécifications sont plutôt claires.
Transparent, but there must be no interactive content descendant, a element descendant, or descendant with the tabindex attribute specified.
Ce code n'est donc pas valide :
Solution
La solution est d'utiliser les positions absolute et relative pour créer un élément cliquable qui prendra la totalité de l'espace. Notre lien aura maintenant cette structure :
Si on reprend la structure précédente elle ressemblera à ça
Avec le CSS suivant
Pour les liens internes vous pouvez aussi utiliser la technique de la <span> mais pour éviter de complexifier la structure HTML la position relative suffit ici. Il est aussi possible d'utiliser des pseudo éléments ::before ou ::after à la place des <span>.