【发布时间】:2013-09-17 16:10:52
【问题描述】:
我有一个包含两列的布局。左列垂直滚动,右列固定。右列包含多个部分。
在某些时候,会显示一个叠加层。我希望它涵盖除右栏中第一部分 (<aside class="one">...</aside>) 之外的所有内容。
现在,当显示叠加层时,它会覆盖所有内容,包括 aside.one 元素,即使它具有更高的 z-index 值。
HTML:
<!-- ... -->
<section id="sidebar">
<aside class="one">...</aside>
<aside class="two">...</aside>
</section>
<!-- ... -->
<div class="overlay"></div>
CSS:
#sidebar {
position: fixed;
}
.one {
z-index: 3;
}
.overlay {
bottom: 0;
left: 0;
position: absolute;
right: 0;
top: 0;
z-index: 2;
}
这是一个 jsFiddle,说明了我的问题的更完整示例:http://jsfiddle.net/ncSWz/10/
我知道我需要更改一些 HTML 结构才能使其正常工作,但我不确定从哪里开始。
提前致谢。
【问题讨论】:
-
IE 支持对您来说有多重要?
-
它支持的版本越多越好,但实际上只需要支持所有主流浏览器的最新版本即可。
-
耻辱。如果将
pointer-events:none;添加到覆盖规则中,则可以让点击直接通过 div。不幸的是,这在任何 IE 中都不起作用(据说 IE11 除外)。 jsfiddle.net/j08691/ncSWz/11 -
叠加层应该阻止它下面的所有内容,并且只允许与它上面的元素交互。