这篇文章介绍的是通过纯 CSS 实现禁止 div 的鼠标点击事件, 比起 JavaScript 来更加灵活, 有需要的可以参考学习.
JavaScript 有一个 preventDefault 方法, 他可用以来取消事件的默认动作. 比如取消打开链接, 选择文本或拖放等.
event.preventDefault()
该方法将通知 web 浏览器不要执行与事件关联的默认动作 (如果存在这样的动作). 例如, 如果 type 属性是 "submit", 在事件传播的任意阶段可以调用任意的事件句柄, 通过调用该方法, 可以阻止提交表单. 注意, 如果 Event 对象的 cancelable 属性是 fasle, 那么就没有默认动作, 或者不能阻止默认动作. 无论哪种情况, 调用该方法都没有作用.
这种方法可以阻止当前元素的浏览器默认行为, 但并不阻止事件被父级及 document 响应. 如果想彻底取消事件, 则可使用 stopPropagation
event.stopPropagation()
该方法将停止事件的传播, 阻止它被分派到其他 Document 节点. 在事件传播的任何阶段都可以调用它. 注意, 虽然该方法不能阻止同一个 Document 节点上的其他事件句柄被调用, 但是它可以阻止把事件分派到其他节点.
(相关课程推荐: CSS 视频教程 https://www.html.cn/css/ )
这两种是在 JS 中的常用取消事件的方法, 但是其实还有一种用纯 CSS 就能实现取消事件响应的方法, pointer-events, 使用起来更加简单, 它可以:
阻止用户的点击动作产生任何效果
阻止缺省鼠标指针的显示
阻止 CSS 里的 hover 和 active 状态的变化触发事件
阻止 JavaScript 点击动作触发的事件
CSS 设置 div 不可点击就可以使用下面的代码:
- .disabled {
- pointer-events: none;
- cursor: default;
- }
这种方法明显比 JS 代码更加灵活, 可惜 ie9 不支持.
本文来自 css3 答 https://www.html.cn/qa/css3/ 疑栏目, 欢迎学习!
来源: http://www.css88.com/qa/css3/16019.html