【发布时间】:2018-09-13 01:54:13
【问题描述】:
我试图在整个页面上覆盖一个 div 以显示一个弹出窗口。问题是,它不会覆盖整个页面。这是代码的近似值:
<div style="z-index:902;">
<div style="position: fixed; width: 100%; height: 100%; left: 0; top: 0;">
Overlay
</div>
Contents of container 1
</div>
<div style="z-index:902;">
Contents of container 2
</div>
<div style="z-index:902;">
Contents of container 3
</div>
overlay div 出现在容器 1 的顶部,但容器 2 和 3 的内容出现在覆盖层的顶部。
我无法将覆盖 div 移到容器 1 之外,因为我正在使用 CMS(如果有帮助,请使用 DotNetNuke)。
我尝试将叠加层的 z-index 设置为高于容器,但没有任何效果。
谁能帮忙?
【问题讨论】:
-
你必须用 div 来做弹出窗口,还是可以做一个模态窗口之类的东西?
-
我认为您在这个问题中没有包含足够的信息。除非其他 div 元素是
positioned,否则上面的代码将起作用。如果他们是positioned,那么他们需要吗?如果他们这样做,那么您需要将 div 包含 'overlay' div 的z-index设置为高于其他 div - 即z-index: 903 -
@SomeKittens 有时最好的答案是尝试不同的方法 - 我已经摆脱了覆盖,并决定只在纯 HTML 页面的新窗口中打开内容。
-
@MyHeadHurts 我确实尝试将叠加层 z-index 设置得更高,但结果发现有一些 javascript 正在执行更改其他容器的 z-index。
-
@c.cam108 - 您需要设置 z-index 的不是“覆盖”,而是“覆盖”的父 div。如果您给父 div 一个 id 并添加属性
z-index: 903!important那么这将解决问题。从纯粹客观的意义上讲 - 公认的答案(如果您指的是第一部分)永远不会奏效。