如何在悬停时更改超链接的光标
超链接的默认光标是“指针”。
要更改它,我们需要使用 CSS :hover 选择器为 <a> 元素指定光标类型。
在我们的示例中,我们仅设置“链接”类的样式。
将“指针”更改为“默认”的示例:
<!DOCTYPE html> <html> <head> <title>文档的标题</title> <style> .link:hover { cursor: default; } </style> </head> <body> <h4> 将鼠标悬停在超链接上,查看“指针”如何更改为“默认值”: </h4> <p> <a href="https://www.onitroad.com">onitroad</a> 使用初始化类型 </p> <p> <a class="link" href="https://www.onitroad.com">onitroad</a> 将光标改成默认类型 </p> </body> </html>
由于链接默认为蓝色和下划线,我们建议更改链接颜色并进一步使用超链接。
查看如何使用 CSS 更改链接颜色文章,了解如何使用链接进行更多操作。
在超链接上使用“抓取”光标类型的示例:
<!DOCTYPE html> <html> <head> <title>文档的标题</title> <style> a { cursor: grab; } </style> </head> <body> <a href="https://www.onitroad.com/" aria-label="onitroad homepage"> <img src="/cursor.png" width="190" height="45" alt="logo" /> </a> </body> </html>
几乎所有都在更改光标以获得更好的用户体验或者只是为了好玩。
自定义光标是一种在需要时为添加另外功能的简单方法。
要指定光标外观,请使用 CSS cursor 属性,该属性用于更改元素上的鼠标光标类型。
它在需要执行不同操作而不仅仅是单击的中很有用。
我们将介绍以下管理游标可用性的方法:
- 当用户将鼠标悬停在列表项上时如何使光标成为手
- 如何在悬停时更改超链接的光标
- 如何在元素上自定义光标图像效果
- 所有光标类型示例
当用户将鼠标悬停在列表项上时如何使光标成为手
如果我们想在将鼠标悬停在列表项上时将鼠标指针更改为手形指针,我们可以为列表项 (<li>) 设置一个类并仅为该列表项定义样式。
但是,如果我们想为所有列表项设置一个手形指针,只需设置 <li> 元素的样式即可。
现在让我们看一个使用 cursor 属性的“pointer”值将鼠标指针更改为手形指针的示例。
我们仅在“指针”类上设置该游标类型。
将鼠标指针更改为手形指针的示例:
<!DOCTYPE html> <html> <head> <title>文档的标题</title> <style> li { margin-bottom: 15px; } li.pointer { cursor: pointer; } li:hover { background-color: #ccc; } </style> </head> <body> <h4>将鼠标悬停在列表项上,查看默认光标如何变为指针:</h4> <ul> <li>使用默认光标列出项目1</li> <li class=“pointer”>用指针光标列出项目2</li> <li>另一个带有默认鼠标光标的列表项</li> </ul> </body> </html>
将鼠标悬停在列表项上以查看默认光标如何变为指针:
- 使用默认光标列出项目 1.
- 使用指针光标列出项目 2.
- 另一个带有默认鼠标光标的列表项。
在下一个示例中,使用 :nth-child 选择器。
其中我们使用 nth-child(odd) 作为游标:进度;和 nth-child(even) 用于光标:指针;在不同的列表项上有不同的光标类型。
使用指针和进度游标的示例:
<!DOCTYPE html> <html> <head> <title>文档的标题</title> <style> li:nth-child(odd) { background: #1c87c9; cursor: progress; width: 50%; padding: 5px; } li:nth-child(even) { background: #ccc; cursor: pointer; width: 50%; padding: 5px; } </style> </head> <body> <p>将光标悬停在列表项上以查看光标的变化:</p> <ul> <li>List item 1</li> <li>List item 2</li> <li>List item 3</li> <li>List item 4</li> <li>List item 5</li> <li>List item 6</li> <li>List item 7</li> </ul> </body> </html>
所有光标类型示例
这里有一个例子,它包含一个游标可以拥有的所有可能的类型。
对于“放大”、“缩小”、“抓取”和“抓取”值,添加了 -webkit- 属性扩展。
使用所有游标类型的示例:
<!DOCTYPE html> <html> <head> <title>文档的标题</title> <style> body { text-align: center; font-family: Roboto, Helvetica, Arial, sans-serif; } .cursor { display: flex; flex-wrap: wrap; } .cursor > div { flex: 120px; padding: 10px 2px; white-space: nowrap; border: 1px solid #666; border-radius: 5px; margin: 0 5px 5px 0; } .cursor > div:hover { background: #1c87c9; } .auto { cursor: auto; } .default { cursor: default; } .none { cursor: none; } .context-menu { cursor: context-menu; } .help { cursor: help; } .pointer { cursor: pointer; } .progress { cursor: progress; } .wait { cursor: wait; } .cell { cursor: cell; } .crosshair { cursor: crosshair; } .text { cursor: text; } .vertical-text { cursor: vertical-text; } .alias { cursor: alias; } .copy { cursor: copy; } .move { cursor: move; } .no-drop { cursor: no-drop; } .not-allowed { cursor: not-allowed; } .all-scroll { cursor: all-scroll; } .col-resize { cursor: col-resize; } .row-resize { cursor: row-resize; } .n-resize { cursor: n-resize; } .e-resize { cursor: e-resize; } .s-resize { cursor: s-resize; } .w-resize { cursor: w-resize; } .ns-resize { cursor: ns-resize; } .ew-resize { cursor: ew-resize; } .ne-resize { cursor: ne-resize; } .nw-resize { cursor: nw-resize; } .se-resize { cursor: se-resize; } .sw-resize { cursor: sw-resize; } .nesw-resize { cursor: nesw-resize; } .nwse-resize { cursor: nwse-resize; } .grab { cursor: -webkit-grab; cursor: grab; } .grabbing { cursor: -webkit-grabbing; cursor: grabbing; } .zoom-in { cursor: -webkit-zoom-in; cursor: zoom-in; } .zoom-out { cursor: -webkit-zoom-out; cursor: zoom-out; } </style> </head> <body> <h2>Cursor 属性示例</h2> <p>将鼠标光标悬停在元素上以查看更改:</p> <div class="cursor"> <div class="auto">auto</div> <div class="default">default</div> <div class="none">none</div> <div class="context-menu">context-menu</div> <div class="help">help</div> <div class="pointer">pointer</div> <div class="progress">progress</div> <div class="wait">wait</div> <div class="cell">cell</div> <div class="crosshair">crosshair</div> <div class="text">text</div> <div class="vertical-text">vertical-text</div> <div class="alias">alias</div> <div class="copy">copy</div> <div class="move">move</div> <div class="no-drop">no-drop</div> <div class="not-allowed">not-allowed</div> <div class="all-scroll">all-scroll</div> <div class="col-resize">col-resize</div> <div class="row-resize">row-resize</div> <div class="n-resize">n-resize</div> <div class="s-resize">s-resize</div> <div class="e-resize">e-resize</div> <div class="w-resize">w-resize</div> <div class="ns-resize">ns-resize</div> <div class="ew-resize">ew-resize</div> <div class="ne-resize">ne-resize</div> <div class="nw-resize">nw-resize</div> <div class="se-resize">se-resize</div> <div class="sw-resize">sw-resize</div> <div class="nesw-resize">nesw-resize</div> <div class="nwse-resize">nwse-resize</div> <div class="grab">grab</div> <div class="grabbing">grabbing</div> <div class="zoom-in">zoom-in</div> <div class="zoom-out">zoom-out</div> </div> </body> </html>
如何在元素上自定义光标图像效果
让我们用游标玩得更开心!可以在网页上添加图像作为光标。
我们只需要通过将其 URL 指定为光标属性的值来添加图像。
请记住将光标类型设置为在浏览器无法使用提供的图像时显示。
否则,代码将无法工作。
当用户不希望看到这样的事情时,这是一个有趣的技巧,可以添加到。
想象一下,我们有一个表单,其中的答案对应于特定的情绪,这里是使用表情符号图像的理想场所。
添加图像作为光标的示例:
<!DOCTYPE html> <html> <head> <title>文档的标题</title> <style> body { background: #eee; text-align: center; } button { display: inline-block; background-color: #1c87c9; color: #eee; margin: 25px; position: relative; width: 140px; height: 45px; border-radius: 3px; border: none; font-size: 1.5em; text-align: center; text-decoration: none; box-shadow: 0 2px 8px 0 #999; } button:hover { background-color: #999; color: #ffcc00; } #nice { cursor: url("/cursornice.png"), auto; } #bad { cursor: url("/cursorbad.png"), auto; } #good { cursor: url("/cursorgood.png"), auto; } </style> </head> <body> <h2>觉得这个怎么样?</h2> <button id="nice">不错</button> <button id="bad">不好</button> <button id="good">很棒</button> </body> </html>
使用图标作为光标的示例:
<!DOCTYPE html> <html> <head> <title>文档的标题</title> <style> body { width: 600px; margin: 0.5em auto; } img { width: 280px; height: 186px; margin: 5px; display: inline-block; background-position: 50% 50%; } .dog { cursor: url("/dog.png"), auto; } .cactus { cursor: url("/cactus.png"), auto; } .nature { cursor: url("/nature.png"), auto; } .house { cursor: url("/house.png"), auto; } </style> </head> <body> <img class="cactus" src="/cactus.png" alt="cactus"> <img class="nature" src="/nature.png" alt="nature"> <img class="dog" src="/dog.png" alt="dog"> <img class="house" src="/house.png" alt="house"> </body> </html>
我们还可以使用提供 Base64 代码的中的图标,只需将 Base64 代码粘贴到光标的 URL 值中即可。
或者将图标下载到并使用 URL 设置光标。