Css 简明教程
CSS - cursor Property
CSS cursor 属性决定当鼠标悬停在应用此属性的元素上时,鼠标光标的外观。此属性仅适用于具有鼠标和光标功能的环境。它的主要目的是通过可视化某些功能来改善可用性。
Possible Values
cursor 属性可以具有以下值:
-
<url> :(可选)你可以灵活地使用一系列 url() 值以逗号分隔,其中每个 url() 指向一个图像文件。
-
<x> <y> :(可选)你可以选择指定 x 和 y 坐标,这些坐标定义了光标热点,并指定光标指向的光标图像中的确切位置。
-
<keyword> :必须指定一个关键字值来指定要使用的光标类型,或者在无法加载指定符号之一时要使用的备用光标。
下表列出了可用的关键字。
Category |
Value |
Example |
Description |
General |
auto |
显示的光标是由用户代理根据当前上下文确定的。这是浏览器用于定义光标的默认属性。 |
|
default |
默认光标(因平台而异)通常显示为箭头。 |
none |
|
没有显示的光标。 |
Links and Status |
context-menu |
|
显示光标是内容菜单光标,表示可以访问上下文菜单。 |
help |
||
显示光标是帮助光标,显示有关帮助的信息可以访问。 |
pointer |
显示光标是指针光标,表示光标用作指示指向超链接的指示器。 |
|
progress |
显示光标是进度光标,表示程序正在执行后台任务,允许用户与界面进行交互,而无需等待其完成。 |
wait |
|
显示光标是光标,程序当前处于占用状态,用户无法与界面进行交互,此状态有时由沙漏或手表图像表示。 |
Drag and Drop |
alias |
|
显示光标是别名光标,表示需要生成别名或快捷方式。 |
copy |
||
显示光标是复制光标,表示需要创建副本。 |
move |
显示光标是移动光标,表示可以重新放置。 |
|
no-drop |
显示光标是不允许放下光标,表示可能无法将项放置在其当前位置。 |
not-allowed |
|
显示光标是不允许的光标,表示不会执行所请求的操作。 |
grab |
||
显示光标是抓取光标,表示可以抓住元素并将其拖动以重新定位。 |
grabbing |
显示光标是抓取光标,表示正在握住或拉动某些内容以促进其移动。 |
|
Selection |
cell |
显示光标是单元格光标,显示了选择表格单元格或一组单元格的选项。 |
|
crosshair |
显示光标是十字光标,通常用于指示位图中的元素选择。 |
text |
|
显示光标是文本光标,表示可以使用 I 形光标指示的文本进行选择。 |
vertical-text |
||
显示光标是垂直文本光标,表示可以使用侧对齐 I 栏指示的垂直文本进行选择。 |
Zooming |
zoom-in |
|
显示光标是放大,表示可以通过缩放来放大对象。 |
zoom-out |
显示光标是缩小,表示可以通过缩放来缩小对象。 |
|
Resizing and Scrolling |
all-scroll |
显示光标是全部滚动光标,可以向任何方向滚动,也称为平移。 |
|
col-resize |
显示光标为列大小调整光标,表示元素或列可能进行水平大小调整,通常表示为箭头指向左右,由垂直线分隔。 |
row-resize |
|
显示光标为行大小调整光标,表示元素或行可能进行垂直大小调整,通常表示为箭头指向上下,由水平线分隔。 |
n-resize |
||
显示光标为北向大小调整光标,表示北侧可以移动或移位。 |
e-resize |
显示光标为东向大小调整光标,表示东侧可以移动或移位。 |
|
s-resize |
显示光标为南向大小调整光标,表示南侧可以移动或移位。 |
w-resize |
|
显示光标为西向大小调整光标,表示西侧可以移动或移位。 |
ne-resize |
||
显示光标为东北向大小调整光标,表示可进行双向大小调整的光标。 |
nw-resize |
显示光标为西北向大小调整光标,表示可进行双向大小调整的光标。 |
|
se-resize |
显示光标为东南向大小调整光标,表示可进行双向大小调整的光标。 |
sw-resize |
|
显示光标为西南向大小调整光标,表示可进行双向大小调整的光标。 |
ew-size |
||
显示光标为东西向大小调整光标,表示可进行双向大小调整的光标。 |
ns-resize |
显示光标为南北向大小调整光标,表示可进行双向大小调整的光标。 |
|
nesw-resize |
显示光标为东北向西南向大小调整光标,表示可进行双向大小调整的光标。 |
nwse-resize |
DOM Syntax
object.style.cursor = "cell";
一些需要说明的点:
-
cursor 属性以值的组合为特征,从零到多个<url>,用逗号分隔,然后是强制关键字(所有关键字在下一部分的表格中列出)值。
-
每个<url>都应该指向一个图像文件。
-
浏览器将尝试加载指定的第一个图像,如果加载不了则加载下一个,如果无法加载任何图像(或没有指定图像),则加载关键字值。
CSS Cursor - Keyword Value
以下示例展示了 CSS 中不同类型的鼠标光标 -
<html>
<head>
<title>All CSS Cursors</title>
<style>
.demo-cursor {
display: inline-block;
background-color: LightYellow;
width: 100px;
height: 100px;
margin: 10px;
border: 3px solid #ccc;
cursor: pointer;
}
.default { cursor: default; }
.auto { cursor: auto; }
.crosshair { cursor: crosshair; }
.pointer { cursor: pointer; }
.move { cursor: move; }
.text { cursor: text; }
.wait { cursor: wait; }
.help { cursor: help; }
.not-allowed { cursor: not-allowed; }
.progress { cursor: progress; }
.alias { cursor: alias; }
.copy { cursor: copy; }
.no-drop { cursor: no-drop; }
.e-resize { cursor: e-resize; }
.n-resize { cursor: n-resize; }
.ne-resize { cursor: ne-resize; }
.nw-resize { cursor: nw-resize; }
.s-resize { cursor: s-resize; }
.se-resize { cursor: se-resize; }
.sw-resize { cursor: sw-resize; }
.w-resize { cursor: w-resize; }
.ew-resize { cursor: ew-resize; }
.ns-resize { cursor: ns-resize; }
.nesw-resize { cursor: nesw-resize; }
.nwse-resize { cursor: nwse-resize; }
.col-resize { cursor: col-resize; }
.row-resize { cursor: row-resize; }
.zoom-in { cursor: zoom-in; }
.zoom-out { cursor: zoom-out; }
.grab { cursor: grab; }
.grabbing { cursor: grabbing; }
</style>
</head>
<body>
<h1>All CSS Cursors, hover the mouse on the blocks.</h1>
<div class="demo-cursor auto"><h3 style="text-align:center;">Auto</h3></div>
<div class="demo-cursor default"><h3 style="text-align:center;">Default</h3></div>
<div class="demo-cursor crosshair"><h3 style="text-align:center;">Crosshair</h3></div>
<div class="demo-cursor pointer"><h3 style="text-align:center;">Pointer</h3></div>
<div class="demo-cursor move"><h3 style="text-align:center;">Move</h3></div>
<div class="demo-cursor text"><h3 style="text-align:center;">Text</h3></div>
<div class="demo-cursor wait"><h3 style="text-align:center;">Wait</h3></div>
<div class="demo-cursor help"><h3 style="text-align:center;">Help</h3></div>
<div class="demo-cursor not-allowed"><h3 style="text-align:center;">Not-allowed</h3></div>
<div class="demo-cursor progress"><h3 style="text-align:center;">Progress</h3></div>
<div class="demo-cursor alias"><h3 style="text-align:center;">Alias</h3></div>
<div class="demo-cursor copy"><h3 style="text-align:center;">Copy</h3></div>
<div class="demo-cursor no-drop"><h3 style="text-align:center;">No-drop</h3></div>
<div class="demo-cursor e-resize"><h3 style="text-align:center;">e-resize</h3></div>
<div class="demo-cursor n-resize"><h3 style="text-align:center;">n-resize</h3></div>
<div class="demo-cursor ne-resize"><h3 style="text-align:center;">ne-resize</h3></div>
<div class="demo-cursor nw-resize"><h3 style="text-align:center;">nw-resize</h3></div>
<div class="demo-cursor s-resize"><h3 style="text-align:center;">s-resize</h3></div>
<div class="demo-cursor se-resize"><h3 style="text-align:center;">se-resize</h3></div>
<div class="demo-cursor sw-resize"><h3 style="text-align:center;">sw-resize</h3></div>
<div class="demo-cursor w-resize"><h3 style="text-align:center;">w-resize</h3></div>
<div class="demo-cursor ew-resize"><h3 style="text-align:center;">ew-resize</h3></div>
<div class="demo-cursor ns-resize"><h3 style="text-align:center;">ns-resize</h3></div>
<div class="demo-cursor nesw-resize"><h3 style="text-align:center;">nesw-resize</h3></div>
<div class="demo-cursor nwse-resize"><h3 style="text-align:center;">nwse-resize</h3></div>
<div class="demo-cursor col-resize"><h3 style="text-align:center;">col-resize</h3></div>
<div class="demo-cursor row-resize"><h3 style="text-align:center;">row-resize</h3></div>
<div class="demo-cursor zoom-in"><h3 style="text-align:center;">Zoom-in</h3></div>
<div class="demo-cursor zoom-out"><h3 style="text-align:center;">Zoom-out</h3></div>
<div class="demo-cursor grab"><h3 style="text-align:center;">Grab</h3></div>
<div class="demo-cursor grabbing"><h3 style="text-align:center;">Grabbing</h3></div>
</body>
</html>
CSS Cursor - <url> Value
以下示例展示了使用图像作为鼠标光标值 -
<html>
<head>
<title>All CSS Cursors</title>
<style>
.demo-cursor {
display: inline-block;
background-color: LightYellow;
width: 100px;
height: 100px;
margin: 10px;
border: 3px solid #ccc;
cursor: url(images/try-it.jpg), pointer;
}
</style>
</head>
<body>
<h1>Image CSS Cursors, hover the mouse on the block.</h1>
<div class="demo-cursor"><h3 style="text-align:center;">Image Cursor</h3></div>
</div>
</body>
</html>
CSS Cursor - <url> Multiple Values
下面举例说明如何使用多张图像(用逗号分隔)作为光标值:
<html>
<head>
<title>All CSS Cursors</title>
<style>
.demo-cursor {
display: inline-block;
background-color: LightYellow;
width: 100px;
height: 100px;
margin: 10px;
border: 3px solid #ccc;
cursor: url(images/try-it.jpg),url(images/cursor-text1.png), crosshair;
}
</style>
</head>
<body>
<h1>Image CSS Cursors, hover the mouse on the block.</h1>
<div class="demo-cursor"><h3 style="text-align:center;">Image Cursor</h3></div>
</div>
</body>
</html>
尝试将第一个图像文件名重命名为 try-it-1.jpg(以便找不到图像),然后执行程序,我们将看到备用效果,即当找不到第一个图像时,源会降级为第二个图像,并将其用作光标。