Specifies the type of cursor to display as the mouse pointer moves over the object.
cursor: all-scroll | auto | col-resize | crosshair | default | hand | help | move | no-drop | not-allowed | pointer | progress | row-resize | text | url(uri) | vertical-text | wait | *-resize
One or more of the following possible values, separated by commas.
Arrows pointing up, down, left, and right with a dot in the middle, indicating that the page can be scrolled in any direction.
Default. Browser determines which cursor to display based on the current context.
Arrows pointing left and right with a vertical bar separating them, indicating that the item/column can be resized horizontally.
Simple cross hair.
Platform-dependent default cursor; usually an arrow.
Hand with the first finger pointing up, as when the user moves the pointer over a link.
Arrow with question mark, indicating help is available.
Crossed arrows, indicating something is to be moved.
Hand with a small circle with a line through it, indicating that the dragged item cannot be dropped at the current cursor location.
Circle with a line through it, indicating that the requested action will not be carried out.
Hand with the first finger pointing up, as when the user moves the pointer over a link. Identical to hand.
Arrow with an hourglass next to it, indicating that a process is running in the background. User interaction with the page is unaffected.
Arrows pointing up and down with a horizontal bar separating them, indicating that the item/row can be resized vertically.
Editable text; usually an I-bar.
Cursor is defined by the author, using a custom URI, such as
url('mycursor.cur'). Cursors of type .CUR and .ANI are the only supported cursor types.
Editable vertical text, indicated by a horizontal I-bar.
Hourglass or watch, indicating that the program is busy and the user should wait.
Arrows, indicating an edge is to be moved; the asterisk (*) can be N, NE, NW, S, SE, SW, E, or W—each representing a compass direction.
|Applies To||All elements|
- CSS 2.1, Section 18.1
When specifying a custom cursor via url(), you must provide at least one "fallback" cursor in addition to the custom cursor, or the custom cursor will not render correctly. For instance, "cursor: url(cursors/cursor2.ani), pointer". See this topic's samples for examples of fallback cursors.
The property handles a comma-separated list of cursor values. If the first cursor is specified incorrectly or can't be found, the next cursor in the comma-separated list will be used, and so on until a usable cursor is found. If none of the listed cursors is valid, the cursor does not change.
Cursors support many shape, color, and movement combinations. This permits you to substitute the default cursors with your preferred design. For instance, you may want your company logo to display as the "progress" cursor; or your country's flag waving in the wind to display as the "wait" cursor.
Cursors have been the subject of security bulletins and updates. If your custom cursors are not behaving as expected, examine the security settings for your browser along with your cursors. This is a common issue with animated cursors. For an example, refer to TechNet Security Resources and search for "Microsoft Security Bulletin MS05-002".
Below are the different possible values for the cursor property:
The following examples use the cursor CSS property and the cursor scripting property to change the cursor as it passes over an object.
This example uses a call to an embedded (global) style sheet to set the cursor to hand as the cursor passes over all paragraphs.
This example uses inline scripting to set the cursor to hand as the cursor passes over the paragraph.
This example demonstrates setting a custom cursor, by using the url(uri) value. Notice the addition of a fallback pointer. Without this fallback pointer, this custom cursor does not render.
<style type="text/css"> oBox.style.cursor = "url(" + Some_Uniform_Resource_Identifier + "), pointer"; </style>
Here is a sample of all currently supported cursors.