cursor

Summary

The cursor CSS property specifies the mouse cursor displayed when the mouse pointer is over an element.

Syntax

Formal syntax: [ [ <uri> [<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 ] ]

Values

<uri>
A url(…) or a comma separated list url(…), url(…), …, pointing to an image file. More than one <uri> may be provided as fallback, in case some cursor image types are not supported. A non-URL fallback (one ore more of the other values) must be at the end of the fallback list. See Using URL values for the cursor property for more details.
<x> <y>
Optional x- and y-coordinates. Two unit-less non-negative numbers less than 32.
Keyword values

Move mouse over value for testing:

Category CSS value   Description
General auto   The browser determines the cursor to display based on the current context.
E.g. equivalent to text when hovering text.
default default.gif Default cursor, typically an arrow.
none   No cursor is rendered.
Links & status context-menu context-menu.png A context menu is available under the cursor.
Only IE 10 and up have implemented this on Windows: bug 258960.
help help.gif Indicating help is available.
pointer pointer.gif E.g. used when hovering over links, typically a hand.
progress progress.gif The program is busy in the background but the user can still interact with the interface (unlike for wait).
wait wait.gif The program is busy (sometimes an hourglass or a watch).
Selection cell cell.gif Indicating that cells can be selected.
crosshair crosshair.gif Cross cursor, often used to indicate selection in a bitmap.
text text.gif Indicating text can be selected, typically an I-beam.
vertical-text vertical-text.gif Indicating that vertical text can be selected, typically a sideways I-beam.
Drag and drop alias alias.gif Indicating an alias or shortcut is to be created.
copy copy.gif Indicating that something can be copied.
move move.gif The hovered object may be moved.
no-drop no-drop.gif Cursor showing that a drop is not allowed at the current location.
bug 275173 on Windows, "no-drop is the same as not-allowed".
not-allowed not-allowed.gif Cursor showing that something cannot be done.
Resize & scrolling all-scroll all-scroll.gif Cursor showing that something can be scrolled in any direction (panned).
bug 275174 on Windows, "all-scroll is the same as move".
col-resize col-resize.gif The item/column can be resized horizontally. Often rendered as arrows pointing left and right with a vertical bar separating.
row-resize row-resize.gif The item/row can be resized vertically. Often rendered as arrows pointing up and down with a horizontal bar separating them.
n-resize Example of a resize towards the top cursor Some edge is to be moved. For example, the se-resize cursor is used when the movement starts from the south-east corner of the box.
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 Indicates a bidirectional resize cursor.
ns-resize 6-resize.gif
nesw-resize 1-resize.gif
nwse-resize 4-resize.gif
Zoom zoom-in zoom-in.gif

Indicates that something can be zoomed (magnified) in or out.

zoom-out zoom-out.gif
Grab grab grab.gif

Indicates that something can be grabbed (dragged to be moved).

grabbing grabbing.gif

Examples

.foo { cursor: crosshair; }

/* use prefixed-value if "zoom-in" isn't supported */
.bar { cursor: -webkit-zoom-in;  cursor: zoom-in; } 

/* standard cursor value as fallback for url() must be provided (doesn't work without) */
.baz { cursor: url(hyper.cur), auto }

Specifications

Specification Status Comment
CSS Basic User Interface Module Level 3 Working Draft Addition of several keywords and the positioning syntax for url().
CSS Level 2 (Revision 1) Recommendation Initial definition.

Browser compatibility

Feature Chrome (WebKit) Firefox (Gecko) Internet Explorer Opera Safari
auto, crosshair, default, move, text, wait, help,
n-resize, e-resize, s-resize, w-resize,
ne-resize, nw-resize, se-resize, sw-resize
1.0 1.0 (1.0) 4.0 7.0 1.2
pointer, progress 1.0 1.0 (1.0 | 1.7) 6.0 7.x 1.2 | 3.0
url() - See Using URL values 1.0 (523) 1.5 (1.8);
OS X: 4.0 (2.0)
6.0 ? 3.0
Positioning syntax for url() values (Yes) (Yes) Not supported ? (Yes)
not-allowed, no-drop, vertical-text, all-scroll,
col-resize, row-resize
1.0 (522) 1.5 (1.8) 6.0 10.6 3.0
alias, cell, copy,
ew-resize, ns-resize, nesw-resize, nwse-resize
1.0 (522) 1.5 (1.8) 10.0 10.6 3.0
context-menu OS X, Linux: 1.0 (522) OS X, Linux: 1.5 (1.8) 10.0 10.6 3.0
none 5.0 (533) 3.0 (1.9) 9.0 ? 5.0
inherit 1.0 1.0 8.0 9.0 1.2
zoom-in, zoom-out 1.0 (522) -webkit- 1.0 (1.4) -moz-
24.0
Not supported 11.6 3.0 -webkit-
grab, grabbing 1.0; Windows: 22.0 -webkit- 1.5 (1.8) -moz-
27.0
Not supported ? 4.0 -webkit-

See also

Attachments

File Size Date Attached by
alias.gif
176 bytes 2009-04-26 20:30:31 Jürgen Jeka
all-scroll.gif
98 bytes 2009-04-21 16:00:52 Jürgen Jeka
cell.gif
98 bytes 2009-04-21 16:00:52 Jürgen Jeka
col-resize.gif
106 bytes 2009-04-27 23:04:31 Jürgen Jeka
context-menu.png
233 bytes 2009-04-25 19:59:48 Jürgen Jeka
copy.gif
173 bytes 2009-04-25 20:03:29 Jürgen Jeka
crosshair.gif
86 bytes 2009-04-21 16:01:25 Jürgen Jeka
default.gif
98 bytes 2009-04-21 16:01:45 Jürgen Jeka
grab.gif
103 bytes 2009-04-21 16:01:47 Jürgen Jeka
grabbing.gif
91 bytes 2009-04-21 16:02:06 Jürgen Jeka
help.gif
119 bytes 2009-04-21 16:02:06 Jürgen Jeka
move.gif
103 bytes 2009-04-25 20:01:33 Jürgen Jeka
no-drop.gif
141 bytes 2009-04-25 20:05:19 Jürgen Jeka
not-allowed.gif
185 bytes 2009-04-25 20:17:59 Jürgen Jeka
pointer.gif
109 bytes 2009-04-21 16:03:34 Jürgen Jeka
progress.gif
136 bytes 2009-04-26 20:30:33 Jürgen Jeka
row-resize.gif
88 bytes 2009-04-27 23:04:33 Jürgen Jeka
vertical-text.gif
84 bytes 2009-04-21 16:04:10 Jürgen Jeka
wait.gif
114 bytes 2009-04-21 16:04:19 Jürgen Jeka
zoom-in.gif
98 bytes 2009-04-26 21:16:34 Jürgen Jeka
zoom-out.gif
96 bytes 2009-04-26 21:16:36 Jürgen Jeka
New resume!.doc
20992 bytes 2011-10-09 23:15:48 MOCHAD@COMCAST.NET
cubic-bezier, example.png
288596 bytes 2011-10-10 06:25:24 teoli
TF_with_output_gt_than_1.png
248751 bytes 2011-10-10 09:22:39 teoli
TF_with_output_gt_than_1_clipped.png
248751 bytes 2011-10-10 09:22:40 teoli
steps(2,start).png
247755 bytes 2011-10-10 11:57:44 teoli
steps(4,end).png
247755 bytes 2011-10-10 11:57:45 teoli
coord_in_R2.png
167468 bytes 2011-10-11 11:30:55 teoli
transform_functions_generic_transformation_cart.png
1964 bytes 2011-10-11 13:24:58 teoli
transform_functions_transform_composition_cart.png
3039 bytes 2011-10-11 14:02:23 teoli
transform_function_generic_2D_homo.png
1431 bytes 2011-10-11 16:06:00 teoli
transform_functions_rotation_cart.png
1542 bytes 2011-10-12 06:36:22 teoli
transform-functions-scale_2_2.png
15461 bytes 2011-10-13 11:47:11 teoli
transform_functions_scale_cart.png
835 bytes 2011-10-13 13:04:29 teoli
transform_functions_scaleX_cart.png
1012 bytes 2011-10-13 17:45:45 teoli
transform_functions_scaleX_homo.png
714 bytes 2011-10-13 17:45:46 teoli
Bugs
17920 bytes 2011-10-13 23:25:50 FarmGirl
radiomak tack 1.png
236656 bytes 2011-10-21 10:41:18 radiomak
template new web 2.png
27498 bytes 2011-10-21 10:41:19 radiomak
Add %S.png
56700 bytes 2011-10-21 20:03:51 jbeatty
text-overflow.png
6704 bytes 2012-01-16 14:40:22 teoli
foto minha amb han.JPG
92611 bytes 2011-10-28 17:57:51 marciocaetano44
1
85 bytes 2012-08-02 03:59:51 teoli
3
83 bytes 2012-08-02 04:00:05 teoli
4
84 bytes 2012-08-02 04:00:17 teoli
6
88 bytes 2012-08-02 04:00:28 teoli
text
86 bytes 2012-08-02 04:00:52 teoli
Example of a resize towards the top cursor
Example of a resize towards the top cursor
1135 bytes 2012-09-29 02:57:26 teoli
Example of a resize towards the right cursor
Example of a resize towards the right cursor
1129 bytes 2012-09-29 02:57:48 teoli
Example of a resize towards the bottom cursor
Example of a resize towards the bottom cursor
1137 bytes 2012-09-29 02:58:13 teoli
Example of a resize towards the left cursor
Example of a resize towards the left cursor
1130 bytes 2012-09-29 02:59:29 teoli
Example of a resize towards the top-right corner cursor
Example of a resize towards the top-right corner cursor
1133 bytes 2012-09-29 03:14:13 teoli
Example of a resize towards the top-left corner cursor
Example of a resize towards the top-left corner cursor
1133 bytes 2012-09-29 03:14:38 teoli
Example of a resize towards the bottom-left corner cursor
Example of a resize towards the bottom-left corner cursor
1133 bytes 2012-09-29 03:15:03 teoli
Example of a resize towards the bottom-right corner cursor
Example of a resize towards the bottom-right corner cursor
1133 bytes 2012-09-29 03:15:31 teoli
Hide Sidebar