深入理解 CSS 属性 pointer-events: none

pointer-events 是 CSS 中一个用于控制元素响应鼠标事件(或触摸事件)的属性。

通过这个属性,我们可以控制元素是否能够接受鼠标事件,例如点击、悬停、拖动等。

其中,pointer-events: none 是 pointer-events 属性的一个重要值,常用于让元素忽略所有的指针事件,使得这些元素无法被点击或响应其他交互。

 1. pointer-events属性概述

pointer-events 属性控制一个元素是否能够接收用户的指针事件。指针事件通常指鼠标点击、悬停、拖动,或者触摸事件等。这些事件可以用来触发元素的交互,例如按钮点击、链接跳转、元素拖动等。

 pointer-events的常见值

auto:元素可以正常接收鼠标事件(默认值)。
none:元素不会响应任何鼠标事件或触摸事件,所有指针事件都会被忽略。
visiblePainted、visibleFill、visibleStroke 等:这些值更多是 SVG 场景中的特定用法。
fill、stroke:这些值适用于 SVG 元素,用来控制元素的填充区域和描边区域是否响应指针事件。

 2.pointer-events: none 的工作原理

当你使用 pointer-events: none 属性时,目标元素会完全忽略所有的鼠标事件。换句话说,任何用户在该元素上的操作(如点击、拖动等)都不会引发事件,也不会影响页面的交互。

这意味着该元素完全“透明”于鼠标事件,任何在该元素上发生的交互都会被视作发生在其下方的元素上。例如,如果你在一个具有 pointer-events: none的按钮上点击,点击事件会传递到该按钮下方的元素上(如果下方的元素是可点击的)。

<div style="width: 200px; height: 200px; background-color: red; pointer-events: none;">我是一个不可点击的红色块。
</div>
<div style="width: 200px; height: 200px; background-color: blue;">我是一个可点击的蓝色块。
</div>

在这个例子中,点击红色块并不会触发任何事件,因为它的 pointer-events被设置为 none。而点击蓝色块则会触发相应的点击事件。

3. 使用 pointer-events: none 的常见应用场景

1. 禁用按钮和链接

pointer-events: none 可以用来禁用页面中的按钮或链接。例如,当一个操作正在进行时,我们可能希望禁用相关的按钮,防止用户重复点击或干扰。

<button style="pointer-events: none;">正在处理中...</button>

在上面的代码中,按钮虽然显示在页面上,但由于 `pointer-events: none`,用户无法点击它。这通常用于显示加载状态或防止多次提交表单。

2. 使元素不可点击(但不改变其样式)

某些情况下,我们希望元素依旧可见,并且其外观不变,但不希望用户对其进行交互。例如,一些弹出层、悬浮框或提示框,在关闭之前可能需要禁用页面上的所有交互。

<div style="pointer-events: none;"><p>页面上的所有交互元素已被禁用。</p>
</div>

在此情况下,pointer-events: none被应用于整个容器,使得容器内的所有元素(例如文本、按钮、链接等)都不会响应任何指针事件。与此同时,这些元素的视觉效果保持不变,仍然会显示在页面上。

3. 交互元素下的透明遮罩层

pointer-events: none 可以配合透明的遮罩层使用,使得遮罩层不会阻挡下面的交互元素。具体应用包括一些需要视觉上的覆盖效果,但不干扰用户操作的情况。

<div style="position: relative;"><button>点击我</button><div style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); pointer-events: none;"><!-- 透明遮罩层,阻挡用户看见元素,但不阻挡交互 --></div>
</div>

在这个例子中,透明的遮罩层覆盖在按钮上,但由于 pointer-events: none,它不会拦截对按钮的点击事件。用户仍然能够点击按钮,尽管按钮被遮罩覆盖。

4. 使 SVG 图形元素响应或不响应事件

在 SVG 中,pointer-events 属性的值能够控制图形元素的交互行为。对于一些图形元素,如果你不希望它们响应鼠标事件(如点击或悬停),你可以使用pointer-events: non

<svg width="100" height="100"><circle cx="50" cy="50" r="40" style="fill: red; pointer-events: none;" />
</svg>

在上面的例子中,红色的圆形不会响应鼠标点击或其他指针事件,即使它在页面上是可见的。

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

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

相关文章

定时器(QTimer)与随机数生成器(QRandomGenerator)的应用实践——Qt(C++)

一、QTimer与QRandomGenerator &#xff08;一&#xff09;QTimer&#xff08;定时器&#xff09;[2] QTimer类为定时功能提供了一个高级编程接口。在使用QTimer时&#xff0c;实例化一个QTimer对象并将其timeout()发射信号与合适的信号槽相连接。通过调用QTimer的start()函数…

用redis的zset实现日榜,周榜,月榜

思路&#xff1a; 1.初始化一个月的数据&#xff1a; /*** 初始化一个月数据*/Testpublic void initMonthData(){//计算当前时间小时的keylong hourSystem.currentTimeMillis()/(1000*60*60);for(int i1;i<24*30;i){String key"W_hour"(hour-i);Random random new…

通过shell脚本分析部署nginx网络服务

通过shell脚本分析部署nginx网络服务 1.接收用户部署的服务名称 [rootlocalhost xzy]# vim 1.sh [rootlocalhost xzy]# chmod x 1.sh [rootlocalhost xzy]# ./1.sh2.判断服务是否安装 已安装&#xff1b;自定义网站配置路径为/www&#xff1b;并创建共享目录和网页文件&…

威胁驱动的网络安全方法论

摘要 目前的网络安全风险管理实践很大程度上是由合规性要求驱动的&#xff0c;这使得公司/组织不得不在安全控制和漏洞上投入人力/物力。&#xff08;风险管理涉及多个方面&#xff0c;包括资产、威胁、漏洞和控制&#xff0c;并根据事故发生的可能性及造成的影响进行评估。威…

『VUE』30. 生命周期的介绍(详细图文注释)

目录 生命周期生命周期的8阶段生命周期小例子总结 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 生命周期 每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤&#xff0c;比如设置好数据侦听&#xff0c;编译模板&#xf…

idea 通过git撤销commit但未push的操作

1、undo commit 适用情况&#xff1a;代码修改完了&#xff0c;已经Commit了&#xff0c;但是还未push&#xff0c;然后发现还有地方需要修改不想提交本次记录了。这时可以进行Undo Commit&#xff0c;修改后再重新Commit。注意&#xff1a;如果已经进行了Push&#xff0c;线上…

【graphics】图形绘制 C++

众所周知&#xff0c;周知所众&#xff0c;图形绘制对于竞赛学僧毫无用处&#xff0c;所以这个文章&#xff0c;专门对相关人员教学&#xff08;成长中的码农、高中僧、大学僧&#xff09;。 他人经验教学参考https://blog.csdn.net/qq_46107892/article/details/133386358?o…

Spring Boot出现java: 错误: 无效的源发行版:16的解决方式

第一步&#xff1a; 修改为SDK的目标字节码版本 第二步&#xff1a;CtrlShiftAltS进入项目结构 第三步&#xff1a;pom.xml文件中 在网上搜索和自己SDK适配的Springboot版本&#xff0c;1.8对应的是2.7.1&#xff08;可以用&#xff09; 修改Java版本为1.8 最后的最后&a…

FPGA 第6讲 简单组合逻辑多路选择器

时间&#xff1a;2024.11.11-11.14 一、学习内容 1.组合逻辑 组合逻辑是VerilgHDL设计中一个重要组成部分。从电路本质上讲&#xff0c;组合逻辑电路的特点是输出信号只是当前时刻输入信号的函数&#xff0c;与其他时刻的输入状态无关&#xff0c;无存储电路&#xff0c;也没…

【C++初阶】C++入门

1、C第一个程序 C是脱胎于C语言的&#xff0c;所以也包含了C语言绝大多数的内容&#xff0c;C兼容C语言绝大多数的语法,在C语言中能实现的程序在C中也是可以执行的&#xff0c;但需要将定义文件代码的后缀改为.cpp 就比如hello world程序 // test.cpp #include<stdio.h&g…

selenium元素定位校验以及遇到的元素操作问题记录

页面元素定位方法及校验 使用比较多的是通过id、class和xpath来对元素进行定位。在定位前可以现在浏览器验证是否可以找到指定的元素。这样就不用每添加一个元素定位都运行代码来检查定位方式表达式是否正确。 使用XPATH定位 在浏览器F12&#xff0c;找到元素&#xff0c;在元…

网络安全之国际主流网络安全架构模型

目前&#xff0c;国际主流的网络安全架构模型主要有&#xff1a; ● 信息技术咨询公司Gartner的ASA&#xff08;Adaptive Security Architecture自适应安全架构&#xff09; ● 美国政府资助的非营利研究机构MITRE的ATT&CK&#xff08;Adversarial Tactics Techniques &…

CC工具箱使用指南:【CAD导出界址点Excel】

一、简介 群友定制工具。 面图层导出界址点Excel表之前已经做过好几个&#xff0c;这个工具则是将CAD导出Excel。 CAD数据如下&#xff1a; 工具将如上截图中的边界线导出界址点Excel&#xff0c;并记录下面内的文字。 二、工具参数介绍 点击【定制工具】组里的【CAD导出界…

如何在项目中用elementui实现分页器功能

1.在结构部分复制官网代码&#xff1a; <template> 标签: 这是 Vue 模板的根标签&#xff0c;包含所有的 HTML 元素和 Vue 组件。 <div> 标签: 这是一个普通的 HTML 元素&#xff0c;包裹了 el-pagination 组件。它没有特别的意义&#xff0c;只是为了确保 el-pagi…

Linux安装Nginx和Nginx基础配置

下载Nginx 方式一&#xff1a;通过官网下载后上传 通过官网下载安装包。下载地址https://nginx.org/en/download.html 这里选择稳定版的进行下载。 这里使用FinalShell终端工具操作&#xff0c;使用其他工具操作亦可。FinalShell工具下载地址&#xff1a;http://www.hostbuf…

Ubuntu20.04从零安装IsaacSim/IsaacLab

Ubuntu20.04从零安装IsaacSim/IsaacLab 电脑硬件配置&#xff1a;安装Isaac sim方案一&#xff1a;pip安装方案二&#xff1a;预构建二进制文件安装1、安装ominiverse2、在ominiverse中安装isaac sim&#xff0c;下载最新的4.2版本 安装Isaac Lab1、IsaacLab环境克隆2、创建con…

C++ STL知识点100问

1问&#xff1a;STL有哪几类&#xff0c;对其进行简单描述 答&#xff1a;STL 主要由适配器 allocator&#xff0c;容器 container&#xff0c;算法 algorithm,迭代器 iterator 和仿函数 functor5大类构成。 适配器allocator&#xff1a;STL 提供了三个容器适配器&#xff1a;…

基于Java Springboot宠物猫售卖管理系统

一、作品包含 源码数据库全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据库&#xff1a;…

python处理单元格语句去重

Python处理单元格内连续出现的重复词语 1. 环境配置 导入必要的库 import pandas as pd # 数据处理库 import re # 正则表达式库 import jieba # 中文分词库2. 处理字符串 检查输入有效性‌ &#xff1a;如果输入是 NaN、None 或非字符串类型&#xff0c;则直接返回输入。…

Linux—ln(link files)命令使用方法(How to create links on Linux)

Linux—ln&#xff08;link files&#xff09;命令使用方法 在 Linux 系统中工作时&#xff0c;需要在不同的目录中使用相同的文件时&#xff0c;不必在每个目录下都复制一份文件&#xff0c;这样不仅浪费磁盘空间&#xff0c;还会导致文件管理上的混乱。 ln(link files) 便是…