Css en fonction de l'ancre cliquée
ariza-multimedia
-
Pitet Messages postés 2845 Statut Membre -
Pitet Messages postés 2845 Statut Membre -
Bonjour,
je viens de créer un site pour le dépannage informatique
https://ariza-multimedia.com/
sur ma page service
https://ariza-multimedia.com/services.html
j'ai créer des ancres qui vont à la page tarifs
réinstallation<a href="tarifs.html#1" rel="nofollow noopener noreferrer" target="_blank">En savoir plus</a>
nettoyage pc portable<a href="tarifs.html#2" rel="nofollow noopener noreferrer" target="_blank">En savoir plus</a>
...
sur la page tarifs
https://ariza-multimedia.com/tarifs.html
j'ai des div avec mes ancre id="1" id="2" ...
je voudrais que lorsque je clique sur #1 le div concerné sois d'une couleur différente
merci d'avance pour votre aide
je viens de créer un site pour le dépannage informatique
https://ariza-multimedia.com/
sur ma page service
https://ariza-multimedia.com/services.html
j'ai créer des ancres qui vont à la page tarifs
réinstallation<a href="tarifs.html#1" rel="nofollow noopener noreferrer" target="_blank">En savoir plus</a>
nettoyage pc portable<a href="tarifs.html#2" rel="nofollow noopener noreferrer" target="_blank">En savoir plus</a>
...
sur la page tarifs
https://ariza-multimedia.com/tarifs.html
j'ai des div avec mes ancre id="1" id="2" ...
je voudrais que lorsque je clique sur #1 le div concerné sois d'une couleur différente
merci d'avance pour votre aide
1 réponse
-
Salut,
Il ne semble pas possible de réaliser ceci uniquement en css, il faut utiliser un peu de javascript.
Un petit exemple :<a href="#1" rel="nofollow noopener noreferrer" target="_blank" class="ancre">1</a> <a href="#2" rel="nofollow noopener noreferrer" target="_blank" class="ancre">2</a> <div id="1" class="titre-ancre">1</div> <div id="2" class="titre-ancre">2</div>
<script> var colorDefault = '#000'; var colorActive = '#888'; // on récupère les balises class="ancre" var links = document.querySelectorAll('.ancre'); for (var i = 0; i < links.length; i++) { // pour chaque balises class="ancre" on associe une la fonction suivante links[i].addEventListener('click', function() { // on réinitialise la couleur de tous les titres var titles = document.querySelectorAll('.ancre'); for (var j = 0; j < titles.length; j++) { document.getElementById(new URL(titles[j].href).hash.replace('#', '')).style.color = colorDefault; } // on change la couleur du titre correspondant à l'ancre cliquée var hash = window.location.hash; document.getElementById(hash.replace('#', '')).style.color = colorActive; }); } </script>
Par rapport à cet exemple, plutôt que de modifier le style directement en js, il serait mieux d'utiliser js uniquement pour ajouter/supprimer une classe sur les titres actifs puis de gérer le style via cette classe css.
Bonne journée,