- cursor
- Try it
- Syntax
- Values
- Formal definition
- Formal syntax
- Usage notes
- Icon size limits
- Supported image file formats
- iPadOS
- Other notes
- Examples
- Setting cursor types
- Specifications
- Browser compatibility
- See also
- Found a content problem with this page?
- MDN
- Support
- Our communities
- Developers
- CSS cursor Property
- Browser Support
- CSS Syntax
- Property Values
- Курсоры в CSS
- Стандартные курсоры
- Полный список значений cursor
- Установка своего курсора
cursor
The cursor CSS property sets the mouse cursor, if any, to show when the mouse pointer is over an element.
The cursor setting should inform users of the mouse operations that can be performed at the current location, including: text selection, activating help or context menus, copying content, resizing tables, and so on. You can specify either the type of cursor using a keyword, or load a specific icon to use (with optional fallback images and mandatory keyword as a final fallback).
Try it
Syntax
/* Keyword value */ cursor: auto; cursor: pointer; /* … */ cursor: zoom-out; /* URL with mandatory keyword fallback */ cursor: url(hand.cur), pointer; /* URL and coordinates, with mandatory keyword fallback */ cursor: url(cursor_1.png) 4 12, auto; cursor: url(cursor_2.png) 2 2, pointer; /* URLs and fallback URLs (some with coordinates), with mandatory keyword fallback */ cursor: url(cursor_1.svg) 4 5, url(cursor_2.svg), /* … ,*/ url(cursor_n.cur) 5 5, progress; /* Global values */ cursor: inherit; cursor: initial; cursor: revert; cursor: revert-layer; cursor: unset;
The cursor property is specified as zero or more values, separated by commas, followed by a single mandatory keyword value. Each should point to an image file. The browser will try to load the first image specified, falling back to the next if it can’t, and falling back to the keyword value if no images could be loaded (or if none were specified).
Each may be optionally followed by a pair of space-separated numbers, which set the and coordinates of the cursor’s hotspot relative to the top-left corner of the image.
Values
A url() or a comma separated list url(), url(), … , pointing to an image file. More than one url() may be provided as fallbacks, in case some cursor image types are not supported. A non-URL fallback (one or more of the keyword values) must be at the end of the fallback list.
Optional x- and y-coordinates indicating the cursor hotspot; the precise position within the cursor that is being pointed to.
The numbers are in units of image pixels. They are relative to the top left corner of the image, which corresponds to » 0 0 «, and are clamped within the boundaries of the cursor image. If these values are not specified, they may be read from the file itself, and will otherwise default to the top-left corner of the image.
A keyword value must be specified, indicating either the type of cursor to use, or the fallback cursor to use if all specified icons fail to load.
The available keywords are listed in the table below. Other than none , which means no cursor, there is an image showing how the cursors used to be rendered. You can hover your mouse over the table rows to see the effect of the different cursor keyword values on your browser today.
Something can be zoomed (magnified) in or out.
Formal definition
Formal syntax
cursor =
[ [ | ] [ ]? ]#? [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | grab | grabbing | 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 ]
=
url( * ) |
src( * )
Usage notes
Icon size limits
While the specification does not limit the cursor image size, user agents commonly restrict them to avoid potential misuse. For example, on Firefox and Chromium cursor images are restricted to 128×128 pixels by default, but it is recommended to limit the cursor image size to 32×32 pixels. Cursor changes using images that are larger than the user-agent maximum supported size will generally just be ignored.
Supported image file formats
User agents are required by the specification to support PNG files, SVG v1.1 files in secure static mode that contain a natural size, and any other non-animated image file formats that they support for images in other properties. Desktop browsers also broadly support the .cur file format.
The specification further indicates that user agents should also support SVG v1.1 files in secure animated mode that contain a natural size, along with any other animated images file formats they support for images in other properties. User agents may support both static and animated SVG images that do not contain a natural size.
iPadOS
iPadOS supports pointer devices like trackpads and mouses. By default, the iPad cursor is displayed as a circle, and the only supported value that will change an appearance of the pointer is text .
Other notes
Cursor changes that intersect toolbar areas are commonly blocked to avoid spoofing.
Examples
Setting cursor types
.foo cursor: crosshair; > .bar cursor: zoom-in; > /* A fallback keyword value is required when using a URL */ .baz cursor: url("hyper.cur"), auto; >
Specifications
Browser compatibility
BCD tables only load in the browser
See also
Found a content problem with this page?
This page was last modified on Jul 7, 2023 by MDN contributors.
Your blueprint for a better internet.
MDN
Support
Our communities
Developers
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.
CSS cursor Property
The cursor property specifies the mouse cursor to be displayed when pointing over an element.
Default value: | auto |
---|---|
Inherited: | yes |
Animatable: | no. Read about animatable |
Version: | CSS2 |
JavaScript syntax: | object.style.cursor=»crosshair» Try it |
Browser Support
The numbers in the table specify the first browser version that fully supports the property.
CSS Syntax
Property Values
Value | Description | Demo |
---|---|---|
alias | The cursor indicates an alias of something is to be created | Play it » |
all-scroll | The cursor indicates that something can be scrolled in any direction | Play it » |
auto | Default. The browser sets a cursor | Play it » |
cell | The cursor indicates that a cell (or set of cells) may be selected | Play it » |
col-resize | The cursor indicates that the column can be resized horizontally | Play it » |
context-menu | The cursor indicates that a context-menu is available | Play it » |
copy | The cursor indicates something is to be copied | Play it » |
crosshair | The cursor render as a crosshair | Play it » |
default | The default cursor | Play it » |
e-resize | The cursor indicates that an edge of a box is to be moved right (east) | Play it » |
ew-resize | Indicates a bidirectional resize cursor | Play it » |
grab | The cursor indicates that something can be grabbed | Play it » |
grabbing | The cursor indicates that something can be grabbed | Play it » |
help | The cursor indicates that help is available | Play it » |
move | The cursor indicates something is to be moved | Play it » |
n-resize | The cursor indicates that an edge of a box is to be moved up (north) | Play it » |
ne-resize | The cursor indicates that an edge of a box is to be moved up and right (north/east) | Play it » |
nesw-resize | Indicates a bidirectional resize cursor | Play it » |
ns-resize | Indicates a bidirectional resize cursor | Play it » |
nw-resize | The cursor indicates that an edge of a box is to be moved up and left (north/west) | Play it » |
nwse-resize | Indicates a bidirectional resize cursor | Play it » |
no-drop | The cursor indicates that the dragged item cannot be dropped here | Play it » |
none | No cursor is rendered for the element | Play it » |
not-allowed | The cursor indicates that the requested action will not be executed | Play it » |
pointer | The cursor is a pointer and indicates a link | Play it » |
progress | The cursor indicates that the program is busy (in progress) | Play it » |
row-resize | The cursor indicates that the row can be resized vertically | Play it » |
s-resize | The cursor indicates that an edge of a box is to be moved down (south) | Play it » |
se-resize | The cursor indicates that an edge of a box is to be moved down and right (south/east) | Play it » |
sw-resize | The cursor indicates that an edge of a box is to be moved down and left (south/west) | Play it » |
text | The cursor indicates text that may be selected | Play it » |
URL | A comma separated list of URLs to custom cursors. Note: Always specify a generic cursor at the end of the list, in case none of the URL-defined cursors can be used | Play it » |
vertical-text | The cursor indicates vertical-text that may be selected | Play it » |
w-resize | The cursor indicates that an edge of a box is to be moved left (west) | Play it » |
wait | The cursor indicates that the program is busy | Play it » |
zoom-in | The cursor indicates that something can be zoomed in | Play it » |
zoom-out | The cursor indicates that something can be zoomed out | Play it » |
initial | Sets this property to its default value. Read about initial | |
inherit | Inherits this property from its parent element. Read about inherit |
Курсоры в CSS
За вид курсора отвечает CSS свойство « cursor ». Им можно задать вид из предопределённых названий курсоров, так и вывести курсор из файла.
Стандартные курсоры
Вид курсора можно задать с помощью значения – названия, например курсор со знаком вопроса:
Полный список значений cursor
Значение | Windows | MacOS | Описание |
---|---|---|---|
auto | Браузер самостоятельно определяет значение курсора в зависимости от свойств элемента | ||
default | Основной курсор | ||
none | – | – | Курсор не отображается |
context-menu | Доступно контекстное меню | ||
help | Доступна вспомогательная информация | ||
pointer | Указатель, обозначающий ссылку | ||
progress | Программа занята, но пользователь может взаимодействовать с интерфейсом | ||
wait | Программа занята | ||
cell | Указывает на возможность выбора клетки таблицы | ||
crosshair | Крестик, часто используемый для обозначения выбора на битовой карте | ||
text | Значок выбора текста | ||
vertical-text | Значок выбора вертикального текста | ||
alias | Будет создана ссылка внутри страницы | ||
copy | Указывает на возможность копирования | ||
move | Указывает на возможность перемещения объекта | ||
no-drop | Указывает на невозможность «сбрасывания» объекта | ||
not-allowed | Указатель невозможности выполнения действия | ||
all-scroll | Указатель возможности перемещения по странице в любом направлении | ||
col-resize | Объект может быть раздвинут/сдвинут горизонтально | ||
row-resize | Объект может быть раздвинут/сдвинут вертикально | ||
n-resize | Грань, которая может быть перемещена | ||
e-resize | |||
s-resize | |||
w-resize | |||
ne-resize | |||
nw-resize | |||
se-resize | |||
sw-resize | |||
ew-resize | Двунаправленное изменение размера | ||
ns-resize | |||
nesw-resize | |||
nwse-resize | |||
zoom-in | Приближение или уменьшение | ||
zoom-out | |||
grab | Указывает на возможность схватить и переместить объект | ||
grabbing |
Браузеры на мобильных устройствах не поддерживают свойство cursor , но при этом в jQuery событие clik не сработает если у элемента нет свойства cursor: pointer .
Установка своего курсора
Все браузеры дают возможность установить элементу свой курсор из файла по URL, например:
Вторым параметром задаются координаты активной точки, в которой регистрируется нажатие мыши. По умолчанию это левый верхний угол (0,0).