cursor

**cursor** CSS 属性设置鼠标指针在元素上时显示的鼠标光标(如果有)。

光标设置应告知用户在当前位置可以执行的鼠标操作,包括:文本选择、激活帮助或上下文菜单、复制内容、调整表格大小等。可以使用关键字指定光标的 *类型*,或者加载要使用的特定图标(带有可选的备用图像和必需的关键字作为最终备用)。

试试看

语法

css
/* 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;

cursor 属性被指定为零个或多个 <url> 值,用逗号隔开,后面跟着一个必需的关键字值。每个 <url> 应该指向一个图像文件。浏览器将尝试加载第一个指定的图像,如果无法加载,则回退到下一个图像,如果无法加载任何图像(或没有指定任何图像),则回退到关键字值。

每个 <url> 之后可以可选地跟一对用空格分隔的数字,这些数字设置光标热点相对于图像左上角的 <x><y> 坐标。

<url> 可选

一个 url() 或一个用逗号分隔的列表 url(), url(), …,指向一个图像文件。可以提供多个 url() 作为备用,以防某些光标图像类型不受支持。非 URL 备用(一个或多个关键字值)*必须*位于备用列表的末尾。

<x><y> 可选

可选的 x 和 y 坐标,指示光标热点;光标中被指向的精确位置。

这些数字以图像像素为单位。它们相对于图像左上角,对应于“0 0”,并被限制在光标图像的边界内。如果没有指定这些值,它们可能会从文件本身读取,否则将默认设置为图像的左上角。

关键字

必须指定一个关键字值,指示要使用的光标类型,或者如果所有指定图标都无法加载,则指示要使用的备用光标。

下表列出了可用的关键字。除了 none(表示没有光标)之外,还显示了光标以前是如何渲染的图像。您可以将鼠标悬停在表格行上,以查看不同的光标关键字值在您当前浏览器中的效果。

类别 关键字 示例 描述
常规 auto UA 将根据当前上下文确定要显示的光标。例如,在悬停文本时等效于 text
default wide arrow pointing up and to the left 平台相关的默认光标。通常是一个箭头。
none 不渲染光标。
链接和状态 context-menu wide arrow pointing up and to the left slightly obscuring a menu icon 上下文菜单可用。
help wide arrow pointing up and to the left next to a question mark 帮助信息可用。
pointer right hand with an index finger pointing up 光标是一个指针,表示链接。通常是指示手的图像。
progress wide arrow and hour glass 程序在后台繁忙,但用户仍然可以与界面交互(与 wait 相反)。
wait hour glass 程序繁忙,用户无法与界面交互(与 progress 相反)。有时是一个沙漏或手表图像。
选择 cell wide plus symbol 可以选择表格单元格或一组单元格。
crosshair plus symbol composed of two thin lines. 十字光标,通常用于指示位图中的选择。
文本 vertical i-beam 文本可以选择。通常呈 I 形。
垂直文本 horizontal i-beam 垂直文本可以选择。通常呈侧向 I 形。
拖放 别名 wide arrow pointing up and to the left partially obscuring a smaller folder icon with a curved arrow pointing up and to the right 要创建一个别名或快捷方式。
复制 wide arrow pointing up and to the left partially obscuring a smaller folder icon with a plus sign 要复制某些内容。
移动 plus sign made of two thin lines. The four points are small arrows facing out 要移动某些内容。
禁止放置 pointer icon and a not allowed icon 项目不能放在当前位置。
Firefox 错误 275173: 在 Windows 和 macOS 上,no-dropnot-allowed 相同。
不允许 Not allowed icon, which is a circle with a line through it 请求的操作将不会执行。
抓取 fully opened hand icon 可以抓取某些内容(拖动以移动)。
正在抓取 closed hand icon, of the back of the hand 正在抓取某些内容(拖动以移动)。
调整大小和滚动 全屏滚动 icon of a medium size dot with four triangles around it. 可以向任何方向滚动(平移)某些内容。
Firefox 错误 275174: 在 Windows 上,all-scrollmove 相同。
列调整大小 col-resize.gif 可以水平调整项目/列的大小。通常呈现为左右指向的箭头,中间用垂直线隔开。
行调整大小 two narrow parallel horizontal lines with a small arrow pointing up and another pointing down 可以垂直调整项目/行的尺寸。通常呈现为上下指向的箭头,中间用水平线隔开。
北调整大小 thin long arrow pointing towards the top 要移动某个边缘。例如,当从框的东南角开始移动时,使用se-resize 光标。
在某些环境中,会显示等效的双向调整大小光标。例如,n-resizes-resizens-resize 相同。
东调整大小 thin long arrow pointing towards the right
南调整大小 thin long arrow pointing down
西调整大小 thin long arrow pointing towards the left
东北调整大小 thin long arrow pointing top-right
西北调整大小 thin long arrow pointing top-left
东南调整大小 thin long arrow pointing bottom-right
西南调整大小 thin long arrow pointing bottom-left
东西调整大小 thin long arrow pointing left and right 双向调整大小光标。
南北调整大小 thin long arrow pointing up and down
东北西南调整大小 thin long arrow pointing both to the top-right and bottom-left
西北东南调整大小 thin long arrow pointing both to the top-left and bottom-right
缩放 放大 magnifying glass with a plus sign

可以放大或缩小某些内容。

缩小 magnifying glass with a minus sign

正式定义

初始值auto
应用于所有元素
继承
计算值按指定方式,但使用 url() 值进行绝对化
动画类型离散

正式语法

cursor = 
[ [ <url> | <url-set> ] [ <x> <y> ]? ]#? [ 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> =
<url()> |
<src()>

<x> =
x

<y> =
y

<url()> =
url( <string> <url-modifier>* ) |
<url-token>

<src()> =
src( <string> <url-modifier>* )

使用说明

图标大小限制

虽然规范没有限制 cursor 图像的大小,但 用户代理 通常会对其进行限制,以避免潜在的滥用。例如,在 Firefox 和 Chromium 中,默认情况下,光标图像限制为 128x128 像素,但建议将光标图像大小限制为 32x32 像素。使用大于用户代理支持的最大大小的图像更改光标,通常会被忽略。

支持的图像文件格式

规范要求用户代理支持 PNG 文件、包含自然尺寸的安全静态模式下的 SVG v1.1 文件,以及它们在其他属性中支持的任何其他非动画图像文件格式。桌面浏览器也广泛支持 .cur 文件格式。

规范还表明,用户代理应该也支持包含自然尺寸的安全动画模式下的 SVG v1.1 文件,以及它们在其他属性中支持的任何其他动画图像文件格式。用户代理可以支持不包含自然尺寸的静态和动画 SVG 图像。

iPadOS

iPadOS 支持触控板和鼠标等指针设备。默认情况下,iPad 光标显示为圆圈,唯一支持更改指针外观的值是 text

其他说明

与工具栏区域交叉的光标更改通常会被阻止,以避免欺骗。

示例

设置光标类型

css
.foo {
  cursor: crosshair;
}

.bar {
  cursor: zoom-in;
}

/* A fallback keyword value is required when using a URL */
.baz {
  cursor: url("hyper.cur"), auto;
}

规范

规范
CSS 基本用户界面模块级别 4
# cursor

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅