Comment mettre un couleur sur un élément actif
Résolu
flexi2202
Messages postés
3822
Date d'inscription
Statut
Membre
Dernière intervention
-
flexi2202 Messages postés 3822 Date d'inscription Statut Membre Dernière intervention -
flexi2202 Messages postés 3822 Date d'inscription Statut Membre Dernière intervention -
bonjour a tous
j'ai une pagination mais je souhaiterais pouvoir ajouter quelques effets visuel comme par exemple donner une couleur lorsque le numéro de page est actif , j'ai trouve pour le passage de la souris mais impossible pour active
voici tout d abord le code de la pagination
et voici la ligne sur laquelle je dois effectuer cet effet
lorsque j applique ce code en css lors du survol de la souris la couleur du numéro de page change
par contre avec ce code rien ne passe lorsque la page est active
j'ai une pagination mais je souhaiterais pouvoir ajouter quelques effets visuel comme par exemple donner une couleur lorsque le numéro de page est actif , j'ai trouve pour le passage de la souris mais impossible pour active
voici tout d abord le code de la pagination
<nav> <ul class="pagination"> <!-- Lien vers la page précédente (désactivé si on se trouve sur la 1ère page) --> <?php //première page if($currentPage >2 ){ echo getNavLink($currentPage,1 ); } //page actuelle moins 1 if($currentPage >1 ){ echo getNavLink($currentPage,$currentPage -1); } //page actuelle echo getNavLink($currentPage,$currentPage ) ; //page actuelle plus 1 if($currentPage < $pages ){ echo getNavLink($currentPage,$currentPage +1); } //Dernière page if($currentPage < $pages - 1 ){ echo getNavLink($currentPage,$currentPage +2); } ?> </ul> </nav>
et voici la ligne sur laquelle je dois effectuer cet effet
//page actuelle echo getNavLink($currentPage,$currentPage ) ;
lorsque j applique ce code en css lors du survol de la souris la couleur du numéro de page change
.page-link:hover { color: red; }
par contre avec ce code rien ne passe lorsque la page est active
.page-link:active { color: #ffff; }
A voir également:
- Comment mettre un couleur sur un élément actif
- Comment mettre un fond de couleur sur libreoffice writer - Guide
- Excel cellule couleur si condition texte - Guide
- Boite a couleur - Télécharger - Divers Photo & Graphisme
- Difference actif et en ligne messenger - Forum Facebook Messenger
- Comment mettre un fond de couleur sur word - Guide
4 réponses
Bonjour,
La pseudo classe css ":active" permet de cibler un élément lorsque celui-ci est activé par l'utilisateur (par exemple lorsqu'il clique sur le lien de pagination).
Si tu veux cibler le lien de pagination correspondant à la page courante pour le styliser sans action utilisateur, il faut utiliser une classe css normale. On peut nommer cette classe css "active" mais il ne faut pas la confondre avec la peudo-classe ":active".
Dans la fonction getNavLink(), il faut donc ajouter une classe css sur le lien de pagination qui correspond à la page courante.
Quel est le code de cette fonction ?
La pseudo classe css ":active" permet de cibler un élément lorsque celui-ci est activé par l'utilisateur (par exemple lorsqu'il clique sur le lien de pagination).
Si tu veux cibler le lien de pagination correspondant à la page courante pour le styliser sans action utilisateur, il faut utiliser une classe css normale. On peut nommer cette classe css "active" mais il ne faut pas la confondre avec la peudo-classe ":active".
Dans la fonction getNavLink(), il faut donc ajouter une classe css sur le lien de pagination qui correspond à la page courante.
Quel est le code de cette fonction ?
bonjour Pitet
Merci pour l explication c est super gentil
mais je me suis dit que puisque le survol fonctionne
cela pourrait fonctionner de la même manière pour active
ensuite j'ai aussi essaye d indiquer une class sur la page active mais la aussi sans succes
voici la function
Merci pour l explication c est super gentil
mais je me suis dit que puisque le survol fonctionne
cela pourrait fonctionner de la même manière pour active
ensuite j'ai aussi essaye d indiquer une class sur la page active mais la aussi sans succes
voici la function
function getNavLink($currentPage=1,$numPage=1){ $disabled = $currentPage == $numPage ? "disabled" : "" ; return '<li class="page-item "'.$disabled.'" > <a href="?page='.$numPage.'" class="page-link ">'.$numPage.'</a> </li>'; }
Il ne faut pas confondre l'état actif de l'élément html (pseudo-classe ":active") avec le style que l'on souhaite appliquer sur le lien correspondant à la page courante (classe "active", qu'on pourrait renommer en "current" pour éviter la confusion).
Pour bien comprendre la différence entre ":hover", ":active" et une classe normale nommée "active" ou "current", tu peux essayer de survoler et cliquer sur les liens de cet exemple : https://jsfiddle.net/h9scp6ez/
Tu pourras constater que le style appliqué via ":active" n'est appliqué que lorsqu'on clique sur le lien (donc que le lien est "actif" pour le navigateur).
A ne pas confondre avec le style appliqué sur le lien correspondant à la page courante via la classe "current", sur lequel on peut également appliquer un style lorsque ce lien est "actif" pour le navigateur.
L'attribut html "disabled" ne peut pas être appliqué sur une balise <li>. En modifiant un peu le code de la fonction getNavLink(), tu peux remplacer l'ajout de cet attribut par l'ajout d'une classe sur la balise <li> qui contient le lien correspondant à la page courante :
Tu devrais alors pouvoir styliser le lien de pagination courant en le ciblant avec le sélecteur css suivant :
Pour bien comprendre la différence entre ":hover", ":active" et une classe normale nommée "active" ou "current", tu peux essayer de survoler et cliquer sur les liens de cet exemple : https://jsfiddle.net/h9scp6ez/
Tu pourras constater que le style appliqué via ":active" n'est appliqué que lorsqu'on clique sur le lien (donc que le lien est "actif" pour le navigateur).
A ne pas confondre avec le style appliqué sur le lien correspondant à la page courante via la classe "current", sur lequel on peut également appliquer un style lorsque ce lien est "actif" pour le navigateur.
L'attribut html "disabled" ne peut pas être appliqué sur une balise <li>. En modifiant un peu le code de la fonction getNavLink(), tu peux remplacer l'ajout de cet attribut par l'ajout d'une classe sur la balise <li> qui contient le lien correspondant à la page courante :
function getNavLink($currentPage=1,$numPage=1){ $class = $currentPage == $numPage ? " current" : ""; return '<li class="page-item' . $class . '"> <a href="?page=' . $numPage . '" class="page-link">' . $numPage . '</a> </li>'; }
Tu devrais alors pouvoir styliser le lien de pagination courant en le ciblant avec le sélecteur css suivant :
.page-item.current .page-link { color: #fff; }
un tout grand merci Pitet
pour le ficher et la démonstration de la (pseudo-classe ":active") et de la (classe "active", )
en effet j avais bien compris la différence mais avec ton exemple cela est bien plus clair
encore merci
pour le code cela fonctionne nickel
j'avais bidouiller un petit truc dans la function aussi avant de demander de l aide mais sans succès
encore merci pour cette aide et les explications
bon week end
pour le ficher et la démonstration de la (pseudo-classe ":active") et de la (classe "active", )
en effet j avais bien compris la différence mais avec ton exemple cela est bien plus clair
encore merci
pour le code cela fonctionne nickel
j'avais bidouiller un petit truc dans la function aussi avant de demander de l aide mais sans succès
encore merci pour cette aide et les explications
bon week end