我想我刚才问过相反的问题(允许鼠标事件通过图像上的透明区域 - 我最终为此使用了图像映射)但无论如何:
当对话框出现时,我需要一个掩码元素。过去我用过:
position:fixed;
left:0;top:0;right:0;bottom:0;
background:#000000;
opacity:0;
filter:alpha(opacity=0);
它确实有效,但有点像“hack”。
我无法获取带有 background:transparent
的元素来拦截鼠标事件。这是故意的吗?除了上述之外,还有什么办法可以解决这个问题吗?或者以上是这个问题的最佳解决方案?
最佳答案
background:transparent
的问题似乎是 IE 特有的(在 IE7/8/9 中测试过)。这在其他浏览器中不是问题。
它也特定于 HTML 表单元素。例如,它在 IE 中可以很好地处理段落标签内的文本,但不适用于按钮标签。这很可能是 IE 中的渲染错误,而不是 Microsoft 故意工程决策的结果。在 IE6 中曾经有一个类似的问题,选择框没有正确地与 position:absolute
分层。
在这种情况下,使用opacity
比使用background:transparent
更安全。如果您更改 mask 的 opacity
以使其部分透明而不是完全透明,它可能感觉不太像 hack。
关于html - 使透明的 <div> 对鼠标事件不透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13792359/