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

Initial value (en-US)auto
Applies toall elements
Inherited (en-US)yes
Computed value (en-US)as specified, but with url (en-US) values made absolute
Animation typediscrete


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


A url(…) or a comma separated list url(…), url(…), …, pointing to an image file. More than one <uri> (en-US) 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> This is an experimental API that should not be used in production code.
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


.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 }


Specification Status Comment
CSS Basic User Interface Module Level 3
The definition of 'cursor' in that specification.
Recommendation Addition of several keywords and the positioning syntax for url().
CSS Level 2 (Revision 1)
The definition of 'cursor' in that specification.
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 This is an experimental API that should not be used in production code. (Yes) (Yes) No support ? (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- (en-US) 1.0 (1.4) -moz- (en-US)
No support 11.6 3.0 -webkit- (en-US)
grab, grabbing 1.0; Windows: 22.0 -webkit- (en-US) 1.5 (1.8) -moz- (en-US)
No support ? 4.0 -webkit- (en-US)

See also