我没有一个独特的问题,但对于我的生活,我无法弄清楚我做错了什么。
我有一个包含一系列部分的页面。该部分的一部分是一个小图像。单击图像时,我想显示一个自定义控件。显示控件是微不足道的,将 z-index 设置得更高一点,以确保控件位于所有内容之上。
但是用户仍然可以与控件后面的部分进行交互。
为了阻止这种情况,我添加了一个“毯子”。基本上是一个 div,它是具有以下 CSS(在 jQuery 语法中)的文档大小 -
{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: $(document).height(),
display: 'none',
zIndex: 1,
backgroundColor: '#FF0000'
};
是的...背景是红色的,所以我可以看到它进行测试。我将不透明度设置为 0.1(光模糊)。然后我将自定义控件的 z-index 设置为 2,使其位于毯子的顶部。
这在 FireFox、Chrome 和 Safari 中完美运行,但在 IE 中却不行。
自定义控件不是毯子的孩子。
目标是让以下文档被毯子覆盖,并在毯子顶部进行控制以与之交互。这是我在除 IE 之外的所有浏览器上得到的。在即...它可以控制文档,并且两者都被毯子覆盖。
回答
scunliffe是最接近的(在我无法链接到的评论中回答)。自定义控件位于一个相对定位的 div 内(实际上向下几个)。毯子只是简单地附加在身体的末端。因此,它位于相对定位的 div 之外并启动了它自己的 z-index 堆栈(如此处所述)。由于 IE 6/7 在这方面被破坏了,无论我将 z-index 设置为什么,它总是在毯子下面。
所以我将毯子移动到相对定位的 div 中的第一个孩子。这还不是 100% 完成,因为如果你滚动(我无法停止这个解决方案),毯子 div 只是可见内容的高度。我现在必须弄清楚如何获得内容的完整高度(可见和不可见)。