CSS cursor Property

Description

The cursor property specifies the type of cursor to be displayed for the pointing device when over the element's border, padding, and content.

Initial value
auto
Applies to
All elements
Inherited
Yes
Media
Visual, Interactive
Computed value
As specified, but with relative URI converted into absolute URI
Animatable
No
CSS Version
CSS2, CSS3
JavaScript syntax
object.style.cursor

Syntax

cursor: [ [<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 ] ] | inherit

Values

Move mouse over values to see cursors in action

General Purpose Cursors:
  • autoThe browser determines the cursor to display based on the current context.
  • defaultThe platform-dependent default cursor. Often rendered as an arrow.
  • noneNo cursor is rendered for the element.
Links and Status Cursors:
  • context-menuA context menu is available for the object under the cursor. Often rendered as an arrow with a small menu-like graphic next to it.
  • helpHelp is available for the object under the cursor. Often rendered as a question mark or a balloon.
  • pointerThe cursor is a pointer that indicates a link.
  • progressThe program is busy in the background but the user can still interact with the interface.
  • waitIndicates that the program is busy and the user should wait. Often rendered as a watch or hourglass.
Selection Cursors:
  • cellIndicates that a cell or set of cells may be selected. Often rendered as a thick plus-sign with a dot in the middle.
  • crosshairA simple crosshair (e.g., short line segments resembling a "+" sign). Often used to indicate a two dimensional bitmap selection mode.
  • textIndicating text can be selected, typically an I-beam.
  • vertical-textIndicating that vertical text can be selected, typically a sideways I-beam.
Drag and Drop Cursors:
  • aliasIndicates an alias of/shortcut to something is to be created. Often rendered as an arrow with a small curved arrow next to it.
  • copyIndicates something is to be copied. Often rendered as an arrow with a small plus sign next to it.
  • moveIndicates something is to be moved.
  • no-dropIndicates that the dragged item cannot be dropped at the current cursor location. Often rendered as a hand or pointer with a small circle with a line through it.
  • not-allowedIndicates that the requested action will not be carried out. Often rendered as a circle with a line through it.
Resizing and Scrolling Cursors:
  • n-resizeSome 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.
  • ne-resizeAs above
  • e-resizeAs above
  • se-resizeAs above
  • s-resizeAs above
  • sw-resizeAs above
  • w-resizeAs above
  • nw-resizeAs above
  • ew-resizeIndicates a bidirectional resize cursor.
  • ns-resizeAs above
  • nesw-resizeAs above
  • nwse-resizeAs above
  • col-resizeIndicates that the item/column can be resized horizontally. Often rendered as arrows pointing left and right with a vertical bar separating them.
  • row-resizeIndicates that the item/row can be resized vertically. Often rendered as arrows pointing up and down with a horizontal bar separating them.
  • all-scrollIndicates that the something can be scrolled in any direction. Often rendered as arrows pointing up, down, left, and right with a dot in the middle.
Zooming Cursors:
  • zoom-inIndicates that something can be zoomed (magnified) in.
  • zoom-outIndicates that something can be zoomed (magnified) out.
Image Cursors:
  • <uri>The user agent retrieves the cursor from the resource designated by the URI. If the user agent cannot handle the first cursor of a list of cursors, it must attempt to handle the second, etc. If the user agent cannot handle any user-defined cursor, it must use the cursor keyword at the end of the list.

Example

<div class="hidden">Please wait ...
<div class="button">Point at me.</div>
</div>
.hidden {
   visibility: hidden; 
   width: 125px; 
   text-align: center;
}
.button {
   visibility: visible;
   border: 1px solid orange;
}
.hidden:hover {
   visibility: visible; 
   cursor: wait; 
}

Give it a Try

Click the button below to experiment with this property.

Give it a Try!

Browser Support

Desktop
Explorer Edge Chrome Firefox Opera Safari
4121171.2
Tablets / Mobile
Android Chrome Firefox Opera Safari Samsung
X18XYes1X

Last updated by CSSPortal on: 26th October 2019


CSS Properties

align-content
align-items
align-self
all
animation
animation-delay
animation-direction
animation-duration
animation-fill-mode
animation-iteration-count
animation-name
animation-play-state
animation-timing-function
backface-visibility
background
background-attachment
background-blend-mode
background-clip
background-color
background-image
background-origin
background-position
background-repeat
background-size
border
border-bottom
border-bottom-color
border-bottom-left-radius
border-bottom-right-radius
border-bottom-style
border-bottom-width
border-collapse
border-color
border-image
border-image-outset
border-image-repeat
border-image-slice
border-image-source
border-image-width
border-left
border-left-color
border-left-style
border-left-width
border-radius
border-right
border-right-color
border-right-style
border-right-width
border-spacing
border-style
border-top
border-top-color
border-top-left-radius
border-top-right-radius
border-top-style
border-top-width
border-width
bottom
box-decoration-break
box-shadow
box-sizing
break-after
break-before
break-inside
caption-side
caret-color
clear
clip-path
color
column-count
column-fill
column-rule
column-rule-color
column-rule-style
column-rule-width
column-span
column-width
columns
content
counter-increment
counter-reset
counter-set
cursor
direction
display
empty-cells
filter
flex
flex-basis
flex-direction
flex-flow
flex-grow
flex-shrink
flex-wrap
float
font
font-family
font-feature-settings
font-kerning
font-language-override
font-size
font-size-adjust
font-stretch
font-style
font-synthesis
font-variant
font-variant-alternates
font-variant-caps
font-variant-east-asian
font-variant-ligatures
font-variant-numeric
font-variant-position
font-weight
grid
grid-area
grid-auto-columns
grid-auto-flow
grid-auto-rows
grid-column
grid-column-end
grid-column-gap
grid-column-start
grid-gap
grid-row
grid-row-end
grid-row-gap
grid-row-start
grid-template
grid-template-areas
grid-template-columns
grid-template-rows
hanging-punctuation
height
hyphens
image-orientation
justify-content
justify-items
justify-self
left
letter-spacing
line-break
line-height
list-style
list-style-image
list-style-position
list-style-type
margin
margin-bottom
margin-left
margin-right
margin-top
max-height
max-width
min-height
min-width
mix-blend-mode
object-fit
object-position
opacity
order
orphans
outline
outline-color
outline-offset
outline-style
outline-width
overflow
overflow-wrap
overflow-x
overflow-y
padding
padding-bottom
padding-left
padding-right
padding-top
perspective
perspective-origin
place-content
place-items
place-self
position
quotes
resize
right
shape-image-threshold
shape-margin
shape-outside
tab-size
table-layout
text-align
text-align-last
text-combine-upright
text-decoration
text-decoration-color
text-decoration-line
text-decoration-style
text-emphasis
text-emphasis-color
text-emphasis-position
text-emphasis-style
text-indent
text-justify
text-orientation
text-overflow
text-shadow
text-transform
text-underline-position
top
transform
transform-origin
transform-style
transition
transition-delay
transition-duration
transition-property
transition-timing-function
unicode-bidi
vertical-align
visibility
white-space
widows
width
word-break
word-spacing
word-wrap
writing-mode
z-index