2375 votes

Comment transformer le curseur en main lorsqu'un utilisateur survole un élément de liste ?

J'ai une liste, et j'ai un gestionnaire de clics pour ses éléments :

<ul>
  <li>foo</li>
  <li>goo</li>
</ul>

Comment puis-je transformer le pointeur de la souris en un pointeur de main (comme lorsque l'on survole un bouton) ? Actuellement, le pointeur se transforme en un pointeur de sélection de texte lorsque je passe la souris sur les éléments de la liste.

68 votes

Pour info, j'ai retagué votre question en supprimant "jquery" et en ajoutant "css" afin de refléter plus précisément la nature de votre question et la réponse à celle-ci.

4 votes

Une bonne liste de référence pour changer le curseur en main et autres icônes disponibles en css. javascriptkit.com/dhtmltutors/csscursors.shtml

3 votes

S'il y a un gestionnaire de clics qui est ajouté avec JavaScript, le css pour le pointeur de la souris devrait également être ajouté avec JavaScript. Ainsi, l'utilisateur ne pense pas qu'il peut cliquer là où ce n'est pas possible. J'ai ajouté un réponse pour ça.

3828voto

Aren Points 17843

Compte tenu du temps qui passe, comme certains l'ont mentionné, vous pouvez désormais vous contenter de l'utiliser en toute sécurité :

li { cursor: pointer; }

229 votes

Il est intéressant de noter que le fait de faire cursor: pointer est suffisant pour tout ce qui est supérieur à IE 5.5 : quirksmode.org/css/cursor.html

24 votes

C'est amusant de voir comment pointeur!=curseur et main!=pointeur, ajoutant encore plus à la confusion :)

22 votes

A noter, quirksmode.org/css/user-interface/cursor.html#note (référencé dans un commentaire précédent) stipule que la main doit venir après pointeur. Je recommande d'utiliser seulement le pointeur - IE 5.5 est plus mort que IE 6.

188voto

Vous n'avez pas besoin de jQuery pour cela, utilisez simplement le contenu CSS suivant :

li {cursor: pointer}

Et voilà ! C'est pratique.

2 votes

Pratique ? Hmm... Je vois ce que tu as fait là, @denis-alpheus-cahuk.

86voto

Alastair Points 1492

Utilisez :

li:hover {
    cursor: pointer;
}

D'autres valeurs valables (qui hand es pas ) pour la spécification HTML actuelle peut être consulté aquí .

18 votes

Je ne comprends pas quelle est l'utilité de la :hover La pseudo-classe est dans ce cas. Existe-t-il un avantage à spécifier un curseur différent lorsque la souris n'est pas utilisée ? pas survoler l'élément ? J'ai également lu que li:hover ne fonctionne pas dans IE6.

1 votes

Je suppose :hover est juste pour la spécificité, @Robert. Je ne peux pas tester le support de n'importe quelle version de MSIE, désolé, mais je ne serais pas surpris si cela ne fonctionnait pas ! :P

0 votes

Pourquoi hand dans la réponse du haut, même si elle ne fonctionne pas ?

52voto

biancardi Points 189

Utilisez

cursor: pointer;
cursor: hand;

si vous voulez avoir un résultat crossbrowser !

12 votes

Nous sommes en 2018, et cursor:hand n'est plus nécessaire pour le développement cross-browser, n'est-ce pas ?

23voto

Xedret Points 399
li:hover {cursor: hand; cursor: pointer;}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X