我有一个网页,顶部有一个jquery Mega Menu ,然后在它下面有一个 jqGrid。当我将鼠标悬停在菜单上时,子菜单会弹出,但它显示在 jqGrid 的“后面”。我尝试进入 dcMegaMenu.css 并添加:
z-index:2000;
此图像直接取自示例页面,此问题可重现
到处都是,但它仍然出现在图像后面?有什么建议么?
此问题是由IE7 错误引起的。从链接的答案中引用我自己:
[这里是] 一些解释该问题的资源:
- IE 6 & IE 7 Z-Index 问题
- IE7 Z-Index 分层问题
- http://brenelz.com/blog/squish-the-internet-explorer-z-index-bug/
- http://richa.avasthi.name/blogs/tepumpkin/2008/01/11/ie7-lessons-learned/
一般的想法是戳
position: relative
(通常删除它)和z-index
有问题的元素的父元素,直到它被修复。
在 IE9 中可能发生相同问题的唯一方法是 IE9 以兼容模式显示页面(或以其他方式使用 IE7 模式)。按 F12 调出开发者工具以查看正在使用的模式。
要在您链接到的页面上解决 IE7 中的此问题,您需要.demo-container
添加position: relative; z-index: 1;
.
如果您无法将此修复程序翻译到您的实际页面,如果您提供指向实际页面的链接(或准确的测试用例:http: //jsfiddle.net/ / http://jsbin. com/)。
这是 IE7 模式下 IE9 的屏幕截图,其中使用开发者工具应用了修复:
如果没有显示任何代码,我所能想到的就是如果元素没有定位, z-index 将什么也不做:
#wontwork {
z-index: 10000;
}
#willdosth {
position: absolute; /* or relative or fixed */
z-index: 1;
}
#also { /* link below */
transform: sth;
z-index: 1;
}
参考:https
://developer.mozilla.org/en/Understanding_CSS_z-index
关于变换和 z-index 的部分:https ://stackoverflow.com/a/7765214/137626
z-index:1;
对于定位元素,可以使用 But 来解决。正如 w3school.com 所解释的,z-index 只能与定位元素一起使用。因此,如果您将超级菜单的列表项设置在相对位置position:relative;
并且使用z-index:1;
将起作用。
通过使用位置:绝对;只需添加一个 z-index:1; 因为堆栈顺序较大的元素总是在堆栈顺序较低的元素前面,所以 z-index 可用于控制堆栈顺序,并且仅用于定位元素