De plus en plus récemment, j'ai vu des développeurs utiliser des astuces pour créer des états de basculement en utilisant du CSS pur. Cela vous permet de sauter le JavaScript sans sacrifier l’interaction. Comment cela marche-t-il? Est-ce une pratique acceptable?
Aujourd'hui, nous allons examiner deux méthodes distinctes pour utiliser une case à cocher afin de créer un événement de clic qui permute entre deux images en utilisant le bon vieux HTML et CSS. Nous terminerons par une brève discussion sur la sémantique et les avantages / inconvénients de cette technique.
Comme écorcher un chat
"Vous créez essentiellement une case à cocher en HTML uniquement pour la masquer et voler ses fonctionnalités."Avec n'importe quelle astuce CSS, il y a toujours une poignée de façons d'accomplir la tâche que vous souhaitez accomplir. Nous allons apprendre ici comment utiliser les cases à cocher pour créer deux états pouvant être basculés entre HTML et CSS. Compte tenu de cet objectif, nous pouvons facilement trouver au moins deux façons de le réaliser. Même dans le cadre de ces deux stratégies principales, vous constaterez qu'il existe plusieurs routes que nous pourrions emprunter.
Les deux méthodes impliquent des ruses douteuses en CSS. Vous créez essentiellement une case à cocher en HTML uniquement pour la masquer et voler ses fonctionnalités. La première méthode étend simplement la case à cocher à la taille de la zone que vous souhaitez rendre cliquable sans utiliser d'étiquette.
La deuxième méthode utilise la fonctionnalité intéressante des étiquettes associées à une case à cocher. Même si vous masquez la case à cocher elle-même, l’étiquette peut en fait être stylée, positionnée et cliquée pour activer la bascule, ce qui nous donne un élément totalement flexible pour travailler avec deux états possibles.
Regardons de plus près chacune de ces méthodes.
Méthode 1
La première façon dont nous allons attaquer cette expérience consiste à faire en sorte que notre case à cocher engloutisse la taille de notre objet, puis à le cacher. Pour que cela fonctionne, tout ce dont vous avez besoin sur le plan technique est une div contenant une case à cocher avec une classe appliquée. Si vous voulez aller plus loin, vous pouvez ajouter d'autres attributs tels que "name". Nous ajouterons également une image pour que nous puissions basculer.