使用 CSS 更改鼠标指针,提升用户体验(或增加趣味性)

Avatar of Geoff Graham
Geoff Graham

DigitalOcean 提供适合您旅程各个阶段的云产品。立即开始使用 价值 200 美元的免费积分!

CSS 可以控制鼠标指针的外观。我们有很多可用的选项,而且 我们已经在这里的 CSS-Tricks 年鉴中全面介绍了它们

尽管如此,我们很容易忽视鼠标指针及其对网站用户体验的影响。还记得我们学习到 ::selection 存在的时候吗?当时每个网站都开始使用它来个性化文本选择时的背景颜色。自定义鼠标指针同样简单,并且在正确使用时可以增添一丝 understated flourish。

在这篇文章中,我将介绍我认为在 CSS 中控制鼠标指针可以改善用户体验的两种方法。

在元素上使用正确的鼠标指针

一些鼠标指针更改内置在用户代理样式表中。以 <a> 链接为例。即使我们在 CSS 中不进行其他操作,链接也会具有 color: blue;text-decoration: underline;。这是一个明确的视觉指示,表示超链接文本是可点击的。

浏览器会更进一步。将鼠标悬停在链接上时,鼠标指针会从默认的黑色箭头更改为伸出食指的手,也称为指针。

有时用户代理样式表中的默认鼠标指针行为并不够用。在这些情况下,我们应该将鼠标指针更改为反映该元素上预期用户交互的内容。

以 jQueryUI draggable() 函数为例。我们可以将其应用于元素,它将允许用户点击并拖动该元素到视窗周围,但如果鼠标指针保持默认状态,用户将永远不会知道这一点。在元素中添加 cursor: move; 可以帮助解决这个问题。

查看 CodePen 上 Geoff Graham ( @geoffgraham ) 的 QNqMRp 创作。

对于任何数量的情况都是如此,无论我们讨论的是表单输入、图像还是任何其他你能想到的东西。当默认箭头不足以提示时,始终抓住机会将元素的鼠标指针与其行为相匹配。以下是当前可用所有鼠标指针的演示。

查看 CodePen 上 Chris Coyier ( @chriscoyier ) 的 鼠标指针! 创作。

使用自定义鼠标指针来增强元素

您可能会问,什么是自定义鼠标指针?也就是说,使用您自己创建的图像来代替鼠标指针。当然可以!

我们可以像这样将 cursor 属性指向图像。

.module {
  cursor: url('path-to-image.png'), auto;	
}

我发现当添加个性化的元素时,这很有用,但用户可能不会想到它。例如,一个表单,其中问题的答案对应于特定情绪。

查看 CodePen 上 Geoff Graham ( @geoffgraham ) 的 qZjwGe 创作。

我发现使用表情符号本身就是一个技巧。您可以从 这样的网站 上复制粘贴表情符号,然后将其粘贴到文本编辑器中并将其保存为 PDF,然后可以在 Illustrator 中打开它。从那里,我就可以选择图像,将其粘贴到 Photoshop 中,并创建一个具有透明背景的 PNG 图像。就这么简单!

对于那些对 SVG 感兴趣的人,我很高兴地说它是可行的!cursor 属性确实接受所有 SVG 文件。但遗憾的是,不接受动画 GIF。

查看 CodePen 上 Geoff Graham ( @geoffgraham ) 的 QNgoQW 创作。

所以,遗憾的是没有动画鼠标指针,除非您做一些疯狂的事情,例如隐藏鼠标指针 (cursor: none;),使用 JavaScript 跟踪鼠标位置,并显示完全自定义的内容。

例如,像这样!

查看 CodePen 上 tamm ( @tamm ) 的 鼠标指针跟随动画 创作。

来自网络的其他示例

您可能认为找到自定义鼠标指针的好例子并不容易。也许它不像其他 CSS 功能那样被广泛使用,或者是我们仍在尝试理解的某些东西,但以下是一些将其用得好的网站。

其他阅读材料