Phénomène connu des développeurs, qui survient lorsqu'on utilise la pseudo-classe :target afin de cibler un unique élément ayant un identifiant (id) dans une page, j'ai nommé le saut de page.
Très utile pour créer un sommaire dans un article par exemple, cette pseudo-classe l'est également pour mettre en place des lightbox ou encore des slider.
Le problème du saut brutal
Cependant, dans le cas d'un slider, un fâcheux problème apparaît. A chaque fois que nous allons cliquer sur un lien pour faire apparaître une image, nous allons constater un saut de page brutal, ce qui s'avère assez désagréable pour l'expérience utilisateur.
Voyons un exemple avec un diaporama qui utilise des identifiants pour la navigation.
Vous pouvez constater un saut de page brutal. Maintenant, nous allons appliquer une petite astuce pour éviter ce problème dans un autre slider.
La solution
Très facile à mettre en place, il vous suffit de créer des id pour chaque lien et de placer ceux-ci juste au-dessus de votre slider. La balise <b> étant sans valeur sémantique, elle fera parfaitement l'affaire. Mais rien ne vous empêche de mettre un élément div ou span.
description1
description2
description3
description4
Vous constatez que la page ne saute pas pour revenir un peu plus haut.
La solution réside dans la classe. On peut bien entendu changer le nom de cette classe. Il suffira ensuite de placer dans le CSS la propriété display associée à la valeur none correspondant à la classe.
Exit le saut de page !
Une autre solution très efficace en CSS consite à utiliser des input de type checkbox ou radio. Rendez-vous sur le tutoriel : Réaliser une galerie d'images avec CSS
Voir aussi en complément sur ce blog la propriété css scroll-behavior (celle-ci permet le saut de page avec un effet moins brutal)
Vous rencontrez un problème avec ce tutoriel ?
Vous avez remarqué une faute, un oubli, un lien mort ? Vous ne comprenez pas un point précis du tutoriel ? Vous pouvez me contacter par mail (contact@guyom-design.com) et je vous aiderai si je le peux.