如何让底层div不可点击?
我制作了覆盖 div:
position: absolute; top: 0; left: 0; widht: 100%; height: 100%;
基本上我希望这个覆盖 div 覆盖我的整个页面。它满足了我的需要,但我还需要底层 div 不可点击。它们确实是不可点击的,但仅限于 FF、Safari 和 Chrome。在 IE 和 Opera 中,您仍然可以单击下面的按钮。
有谁知道如何实现这种“不可点击的底层行为”?
I made overlay div with:
position: absolute; top: 0; left: 0; widht: 100%; height: 100%;
Basically I want this overlay div to cover my whole page. And it does what I need, but I also need underlying divs to be unclickable. They are indeed unclickable but only in FF, Safari and Chrome. in IE and Opera you can still click buttons that are underneath.
Does anyone have any idea on how can I achieve this "unclickable underlying behaviour"?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
为覆盖 div 添加 onclick 处理程序。
Add an onclick handler for the overlay div.
您还需要使用 z-index 来确保您的新 div 位于其他所有内容之上。如果没有此属性,您将受到浏览器的支配,哪个浏览器将位于顶部并接收 onclick
还要注意一个已知的 IE(旧版本)错误,即输入类型选择会忽略 z-index
You also need to use z-index to ensure that your new div is on top of everything else. Without this attribute you are at the mercy of the browser in terms which one will be on top and receive the onclick
Also be aware of a known IE (older versions) bug that input type selection ignores z-index
如果您使用的是 jQuery 之类的东西,您可以执行类似的操作,
您会将覆盖层中的所有内容(链接、按钮等)赋予覆盖层类,这将有效地禁用页面上的其他所有内容。
If you're using something like jQuery, you can do something like
You'll give everything in your overlay (links, buttons, etc.) the overlay class, and this will effectively disable everything else on your page.
使用 javascript 可以轻松完成此操作:
这种方法当然可以用于所有 dom 元素,而不仅仅是主体。
此处的工作示例: http://jsfiddle.net/GTPW3/3/
This can easily be done using javascript:
This approach can of course be used on all dom elements, not just the body.
Working sample here: http://jsfiddle.net/GTPW3/3/
覆盖 CSS with:
会处理它。
Tthe overlay CSS with:
will take care of it.