css层遮挡无法点击解决csspointer-events绝对定位层遮挡的问题解决办法

css层遮挡无法点击解决csspointer-events绝对定位层遮挡的问题解决办法


2024年5月24日发(作者:)

css层遮挡无法点击解决csspointer-events绝对定位层遮挡

的问题解决办法

本文章来给各位同学介绍关于在css pointer-events绝对定位层

遮挡的问题解决办法,各位同学不防进入参考。

在没有背景和图片填充的情况下,火狐和Chrome下不能直接点

击绝对定位层下面的元素(比如链接),下面的链接被上面的绝对定

位层挡住了。在IE里面是可以直接点击绝对定位层下面的链接。

对于这种问题需要用到一个css3的属性,可以通过给绝对定位的

层多加一个样式 pointer-events:none; 以后, 绝对定位层下的元素就

可以点击了。

光给绝对定位的层添加pointer-events:none; 的样式是不够的,

你可以发现所有在此层里的元素,都不能点击了,就连链接和按钮也

同样不起作用,所以我们需要给绝对定位层中的其他非空的元素把样

式再返回。

给里面的元素重新设置为 pointer-events:auto,只给需要操作的

元素区域设置即可。

查看演示页面

pointer-events属性有很多值:

pointer-events: auto | none | visiblePainted | visibleFill |

visibleStroke | visible | painted | fill | stroke | all | inherit

但是对于浏览器来说,只有auto和non两个值可用,其它的几个

是针对SVG的(本身这个属性就来自于SVG技术)。

下面介绍一下pointer-events这两个属性值详细描述

auto——效果和没有定义pointer-events属性相同,鼠标不会穿

透当前层。在SVG中,该值和visiblePainted的效果相同。

none——元素不再是鼠标事件的目标,鼠标不再监听当前层而去

监听下面的层中的元素。但是如果它的子元素设置了pointer-events

为其它值,比如auto,鼠标还是会监听这个子元素的。

其它属性值为SVG专用,这里不再多介绍了。

对于浏览器兼容的问题:Firefox 3.6+和chrome 2.0+ 以及safari

4.0+都支持这个CSS3属性。

例子

代码如下 复制代码