MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-survey

La propriété cursor définit la forme du curseur lorsque le pointeur est au-dessus de l'élément.

/* Valeurs avec un mot-clé */
cursor: pointer;
cursor: auto;

/* Valeur avec une URL et un mot-clé */
/* au cas où l'URL échoue */
cursor: url(cursor1.png), pointer;

/* Valeurs utilisant une URL et des coordonnées */
/* ainsi qu'un mot-clé au cas où l'URL échoue   */
cursor:  url(cursor1.png) 4 12, auto;
cursor:  url(cursor2.png) 2 2, pointer;

/* Valeurs globales */
cursor: inherit;
cursor: initial;
cursor: unset;

Valeur initialeauto
Applicabilitétous les éléments
Héritéeoui
Médiavisuel, interactif
Valeur calculéecomme spécifié mais avec les valeurs url rendues absolues
Type d'animationdiscrète
Ordre canoniquel'ordre unique et non-ambigu défini par la grammaire formelle

Syntaxe

La propriété cursor peut être définie grâce à zéro ou plusieurs valeurs <uri> séparées par des virgules et suivi par un unique mot-clé obligatoire. Chaque <uri> doit pointer vers un fichier image. Le navigateur essaiera de télécharger la première image indiquée et passera à la suivante s'il ne peut pas. Si aucune image ne fonctionne, il utilisera le mot-clé final.

Chaque <uri> peut éventuellement être suivi par un couple de nombres séparés par un espace qui représente les coordonnées (abscisse puis ordonnée) <x><y> Ces coordonnées permettent de paramétrer le point d'action (hotspot) du curseur par rapport au coin en haut à gauche de l'image.

Par exemple, on peut indiquer deux images grâce à deux valeurs <uri> et fournir des coordonnées <x><y> pour la deuxième. Si aucune des images n'a pu être chargée, on recourt au mot-clé progress :

cursor: url(one.svg), url(two.svg) 5 5, progress;

Valeurs

<uri>
Une url(…) ou une liste séparées de telles valeurs qui pointent vers un fichier image. On peut utiliser différentes <uri> en cas de recours si certains types d'images ne sont pas pris en charge. Il est obligatoire qu'une valeur non-URL soit présente à la fin de cette liste.
<x> <y>
Des coordonnées en abscisses et en ordonnées sans unité, inférieures à 32.
Valeurs utilisant un mot-clé

Vous pouvez déplacer votre souris au-dessus de chaque ligne pour tester.

Catégorie Valeur CSS Rendu Description
Général auto   Le navigateur détermine le curseur à afficher en fonction du contexte (par exemple, l'effet sera équivalent à  text lors du survol du texte).
default default.gif Le curseur par défaut (qui est généralement une flèche).
none   Aucun curseur n'est affiché.
Liens & états context-menu context-menu.png Un menu contextuel est disponible sous le curseur. Seul
IE 10 et les versions supérieures ont implémenté cette valeur sur Windows : bug 258960.
help help.gif Le pointeur indique qu'une aide est disponible.
pointer pointer.gif Le pointeur généralement utilisé au-dessus des liens, généralement c'est une main.
progress progress.gif Le programme est occupé en arrière-plan mais l'utilisateur peut toujours interagir avec l'interface (à la différence de wait).
wait wait.gif Le programme est occupé, empêchant toute interaction.
Sélection cell cell.gif Le pointeur indique que les cellules peuvent être sélectionnées.
crosshair crosshair.gif Un curseur en forme de croix, généralement utilisé pour indiquer une sélection sur une image.
text text.gif Le pointeur indique que le texte peut être sélectionné.
vertical-text vertical-text.gif Le pointeur indique que du texte vertical peut être sélectionné.
Glisser/déposer alias alias.gif Le pointeur indique qu'un alias ou qu'un raccourci sera créé.
copy copy.gif Le pointeur indique que quelque chose peut être copié.
move move.gif L'objet survolé peut être déplacé.
no-drop no-drop.gif Le curseur indique qu'on ne peut pas déposer d'élément à cet endroit.
bug 275173 pour Windows et Mac OS X, « no-drop a le même effet que not-allowed ».
not-allowed not-allowed.gif Le curseur indique que quelque chose ne peut pas être fait.
Redimensionnement & défilement all-scroll all-scroll.gif Le curseur indique qu'on peut faire défiler le contenu dans n'importe quelle direction.
bug 275174 pour Windows, « all-scroll a le même effet que move".
col-resize col-resize.gif L'élément ou la colonne peut être redimensionné horizontalement.
row-resize row-resize.gif L'élément ou la ligne peut être redimensionné verticalement.
n-resize Example of a resize towards the top cursor

Un bord peut être déplacé. Par exemple, le curseur se-resize peut être utilisé lorsqu'on redimensionne une boîte à partir de son coin sud-est.

Dans certains environnements, un curseur bidirectionnel équivalent est affiché (ex. n-resize et s-resize sont synonymes de ns-resize).

e-resize Example of a resize towards the right cursor
s-resize Example of a resize towards the bottom cursor
w-resize Example of a resize towards the left cursor
ne-resize Example of a resize towards the top-right corner cursor
nw-resize Example of a resize towards the top-left corner cursor
se-resize Example of a resize towards the bottom-right corner cursor
sw-resize Example of a resize towards the bottom-left corner cursor
ew-resize 3-resize.gif Le pointeur indique un redimensionnement bidirectionnel.
ns-resize 6-resize.gif
nesw-resize 1-resize.gif
nwse-resize 4-resize.gif
Zoom zoom-in zoom-in.gif

Le pointeur indique qu'on peut zoomer/dézoomer sur le contenu.

zoom-out zoom-out.gif
Attrapage grab grab.gif

Le pointeur indique que le contenu peut être accroché/attrapé pour être glissé et déposé quelque part.

grabbing grabbing.gif

Syntaxe formelle

[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing ] ]

Exemples

CSS

.toto {
  cursor: crosshair;
}

/* On utilise la valeur préfixée   */
/* si "zoom-in" n'est pas prise en */
/* charge */
.truc {
  cursor: -webkit-zoom-in;
  cursor: zoom-in;
} 

HTML

<p class="toto">
  On dirait qu'on pourrait sélectionner une zone.
</p>

<p class="truc">
  Et là on peut zoomer.
</p>

Résultat

Spécifications

Spécification État Commentaires
CSS Basic User Interface Module Level 3
La définition de 'cursor' dans cette spécification.
Recommendation proposée Ajout de plusieurs mots-clés et de la syntaxe de positionnement pour url().
CSS Level 2 (Revision 1)
La définition de 'cursor' dans cette spécification.
Recommendation Définition initiale.

Compatibilité des navigateurs

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
Support simple1 Oui14171.2
auto1 Oui1471.2
default1 Oui1471.2
inherit1 Oui1891.2
none5 Oui39155
context-menu12 Oui1.521010.63
help1 Oui1471.2
pointer1 Oui1671.2
progress1 Oui1671.2
wait1 Oui1471.2
cell1 Oui1.51010.63
crosshair1 Oui1471.2
text1 Oui1471.2
vertical-text1 Oui1.5 Non10.63
alias1 Oui1.51010.63
copy1 Oui1.51010.63
move1 Oui1471.2
no-drop1 Oui1.5610.63
not-allowed1 Oui1.5610.63
all-scroll1 Oui1.5610.63
col-resize1 Oui1.5610.63
row-resize1 Oui1.5610.63
Unidirectional resize cursors (n-resize, e-resize, s-resize, w-resize, ne-resize, nw-resize, se-resize, and sw-resize)1 Oui1471.2
Bidirectional resize cursors (ew-resize, nesw-resize, ns-resize, and nwse-resize)1 Oui1.51010.63
Zoom cursors (zoom-in and zoom-out)

37

1 -webkit-

Oui

24

1 -moz-

Non

24

15 — 23 -webkit-

9

3 -webkit-

Grab cursors (grab and grabbing)1 -webkit- 3 Oui

27

1.5 -moz-

Non Oui4 -webkit-
url()1 Oui1.546 ?3
url() positioning syntax Oui Non Oui Non ? Oui
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Support simple Non ? Oui ? ? ? ?
auto Non ? Oui ? ? ? ?
default Non ? Oui ? ? ? ?
inherit Non ? Oui ? ? ? ?
none Non ? Oui ? ? ? ?
context-menu Non ? Oui ? ? ? ?
help Non ? Oui ? ? ? ?
pointer Non ? Oui ? ? ? ?
progress Non ? Oui ? ? ? ?
wait Non ? Oui ? ? ? ?
cell Non ? Oui ? ? ? ?
crosshair Non ? Oui ? ? ? ?
text Non ? Oui ? ? ? ?
vertical-text Non ? Oui ? ? ? ?
alias Non ? Oui ? ? ? ?
copy Non ? Oui ? ? ? ?
move Non ? Oui ? ? ? ?
no-drop Non ? Oui ? ? ? ?
not-allowed Non ? Oui ? ? ? ?
all-scroll Non ? Oui ? ? ? ?
col-resize Non ? Oui ? ? ? ?
row-resize Non ? Oui ? ? ? ?
Unidirectional resize cursors (n-resize, e-resize, s-resize, w-resize, ne-resize, nw-resize, se-resize, and sw-resize) Non ? Oui ? ? ? ?
Bidirectional resize cursors (ew-resize, nesw-resize, ns-resize, and nwse-resize) Non ? Oui ? ? ? ?
Zoom cursors (zoom-in and zoom-out) Non ? Oui ? ? ? ?
Grab cursors (grab and grabbing) Non ? Oui ? ? ? ?
url() Non ? Oui ? ? ? ?
url() positioning syntax Non ? Non ? ? ? ?

1. In Internet Explorer 11, when cursor is applied to an element and this element is underneath an open <select> menu and the user hovers over a <select> menu item that's on top of said element, the cursor for said element will be displayed rather than the <select>'s normal cursor. See bug 817822.

2. This cursor is only supported on macOS and Linux.

3. Chrome 22 added Windows support.

4. Firefox 4 added macOS support.

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
 Dernière mise à jour par : SphinxKnight,