CSS - 13、鼠标相关属性

news/2025/3/12 9:32:26/文章来源:https://www.cnblogs.com/lwehne/p/18766744

在CSS中,与鼠标交互相关的属性主要用于增强用户体验,例如改变鼠标悬停时的样式、设置鼠标指针的形状等。这些属性可以帮助你创建更直观、更友好的界面。以下是与鼠标交互相关的CSS属性及其使用方法。


1. cursor(鼠标指针形状)

cursor属性用于定义鼠标指针在元素上悬停时的形状。通过设置cursor属性,可以提示用户当前元素的功能(例如是否可点击)。

常用值:

  • auto(默认值):浏览器自动选择指针形状。
  • default:标准指针形状(通常是一个箭头)。
  • pointer:手形指针(通常用于链接或按钮)。
  • text:文本编辑指针(通常是一个竖线)。
  • wait:等待指针(通常是一个沙漏或旋转的圈)。
  • move:移动指针(通常是一个十字箭头)。
  • not-allowed:禁止指针(通常是一个圆圈带斜杠)。
  • grabgrabbing:用于拖拽操作的指针。

示例:

a {cursor: pointer; /* 鼠标悬停在链接上时显示手形指针 */
}p {cursor: text; /* 鼠标悬停在文本上时显示文本编辑指针 */
}button {cursor: not-allowed; /* 鼠标悬停在按钮上时显示禁止指针 */
}

2. 鼠标悬停(:hover伪类)

:hover伪类用于定义鼠标悬停在元素上时的样式。这是实现交互效果的常用方法,例如改变颜色、背景或边框等。

示例:

button {background-color: blue;color: white;
}button:hover {background-color: red; /* 鼠标悬停时背景变为红色 */color: black; /* 鼠标悬停时文字变为黑色 */
}

3. 鼠标按下(:active伪类)

:active伪类用于定义鼠标按下(点击)元素时的样式。这可以用于创建按钮的“按下”效果。

示例:

button {background-color: blue;color: white;
}button:active {background-color: green; /* 鼠标按下时背景变为绿色 */transform: scale(0.95); /* 鼠标按下时按钮缩小 */
}

4. 鼠标焦点(:focus伪类)

:focus伪类用于定义元素获得焦点时的样式。这通常用于表单元素(如输入框)或可聚焦的按钮。

示例:

input {border: 1px solid #ccc;
}input:focus {border-color: blue; /* 获得焦点时边框变为蓝色 */outline: none; /* 去掉默认的焦点轮廓 */box-shadow: 0 0 5px rgba(0, 0, 255, 0.5); /* 添加阴影效果 */
}

5. 鼠标悬停的高级效果

除了简单的颜色或背景变化,还可以结合CSS动画和过渡效果,创建更丰富的鼠标交互效果。

示例:

button {background-color: blue;color: white;transition: background-color 0.3s ease; /* 添加过渡效果 */
}button:hover {background-color: red; /* 鼠标悬停时背景变为红色 */
}button:active {background-color: green; /* 鼠标按下时背景变为绿色 */
}

6. 鼠标指针的自定义图片

cursor属性还支持使用自定义图片作为指针形状。这可以通过url()函数实现。

示例:

div {cursor: url('cursor.png'), auto; /* 使用自定义图片作为指针 */
}
  • 注意: 如果图片无法加载,浏览器会回退到auto指定的默认指针。

7. 综合示例

以下是一个综合示例,展示了如何使用cursor:hover:active:focus伪类来增强鼠标交互效果:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>鼠标交互示例</title><style>body {font-family: Arial, sans-serif;}button {padding: 10px 20px;background-color: blue;color: white;border: none;cursor: pointer;transition: background-color 0.3s ease, transform 0.2s ease;}button:hover {background-color: red;}button:active {background-color: green;transform: scale(0.95);}input {padding: 8px;border: 1px solid #ccc;transition: border-color 0.3s ease;}input:focus {border-color: blue;outline: none;box-shadow: 0 0 5px rgba(0, 0, 255, 0.5);}</style>
</head>
<body><button>点击我</button><input type="text" placeholder="输入内容">
</body>
</html>

总结

CSS提供了多种与鼠标交互相关的属性和伪类,用于增强用户体验。以下是主要的内容:

属性/伪类 用途
cursor 设置鼠标指针的形状(如pointertextnot-allowed等)
:hover 定义鼠标悬停时的样式
:active 定义鼠标按下时的样式
:focus 定义元素获得焦点时的样式
transition 添加过渡效果,使鼠标交互更加平滑
cursor: url() 使用自定义图片作为鼠标指针

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/897557.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qt creator 配置clang-format 代码风格

1 Qt creator配置格式化代码插件clang-format 2 clang-format的配置 qt creator上面的选项卡:帮助>关于插件,在c++的那一栏中勾选Beautifier,然后重启qt creator的软件。上方的选项卡:编辑>Preferences>美化器 选择工具为ClangFormat在Clang Format的那一栏中,选…

利用Xshell进行文件传输

1.利用Xshell连接靶机或服务器 新建会话,(连接这里)输入ip,选择端口,名字随便写 点击用户身份验证,输入管理员用户和密码 点击连接 进入靶机终端(可能还需要确认一次密码)2.提权与修改密码 如果不是root权限,可以通过su root提权 root权限下直接通过passwd修改密码 如果是…

です(desu)的意思

“です”是日语中常用的表达方式,主要有以下几个含义和使用场景: 1. 表达断定:在日语中,“です”相当于汉语的“是”,用于断定句的结尾,表示对前面所述内容的肯定。例如,“これは本です。”(这是书。)2. 表达尊敬:在表达尊敬的场合,使用“です”可以使语气显得更加礼…

2025-03-12 随笔

今天周三,天气不错,记

线上测试木舟物联网平台之如何通过HTTP网络组件接入设备

一、概述 木舟 (Kayak) 是什么?木舟(Kayak)是基于.NET6.0软件环境下的surging微服务引擎进行开发的, 平台包含了微服务和物联网平台。支持异步和响应式编程开发,功能包含了物模型,设备,产品,网络组件的统一管理和微服务平台下的注册中心,服务路由,模块,中间服务等管理。还…

经过 10 亿级性能验证的隐私计算开源利器

在数据驱动的时代,我们每天都在产生大量数据:购物记录、健康信息、社交关系……这些数据蕴含巨大价值,但也伴随着隐私泄露的风险。 试想一下:医院希望联合研究某种疾病,但患者数据无法直接共享。 银行想合作分析反欺诈信息,但客户隐私数据必须严格保护。 AI 公司需要使用…

值得推荐的IT公司名单(国企篇)

大家好,今天我们来盘点一下值得推荐的国企,这些企业在行业内具有举足轻重的地位,不仅主营业务突出,福利待遇优厚,尤其是研发岗位的薪资区间,更是让人眼前一亮。十大顶尖央企国企,待遇优厚如天花板级别!(排名不分先后)1、中国烟草总公司 人家都说能成为烟草总公司的一…

Entity Framework Core 数据库迁移

EF Core 通过两种方式来保持**模型**和**数据库架构**同步。 迁移 Code First 反向工程 Db First 管理迁移 通过EF Core 命令行工具来管理迁移 安装EF Core 命令行工具# 安装 dotnet-ef dotnet tool install --global dotnet-ef# 验证安装 dotnet ef# 更新工具 dotnet tool upd…

Roslyn 分析器已知问题 传递项目属性时将忽略分号之后的内容

本文记录 Roslyn 分析器、源代码生成器的已知问题,通过CompilerVisibleProperty 传递值时,所有在 `;`、`#` 和换行符之后的字符都会被忽略相关问题链接:https://github.com/dotnet/roslyn/issues/43970 https://github.com/dotnet/roslyn/issues/51692此问题由 walterlv 发现…

Avalonia 已知问题 继承滚动条将让里层控件无法获得无穷大空间

本文记录 Avalonia 的一个已知问题,如果有代码里面编写一个类型继承 ScrollViewer 类型,然后这个类型里面啥都不做。那将会导致所有放在此滚动条里面的控件无法获取无穷大的空间,其宽高无法撑开,被限定为上层容器尺寸复现步骤如下:新建一个 FooScrollViewer 类型,让其继承…

读DAMA数据管理知识体系指南17数据存储和操作治理

读DAMA数据管理知识体系指南17数据存储和操作治理1. 管理数据库性能 1.1. 数据库的性能取决于两个相互依赖的因素:可用性和响应速度 1.2. 性能包括确保空间的可用性、查询优化以及其他能使数据库以有效的方式返回数据的因素1.2.1. 如果没有可用性,就无法衡量数据库的性能1.2.…