IE7将绝对定位的div放在下面,忽略了z-index

Bri*_*ong 2 css internet-explorer-7

试图自己解决这个问题,到目前为止失败了.

在您开始键入主题或位置字段时显示的黄色自动完成div显示在IE7 的其他文本下方.这是网站:

http://www.universitytutor.com

设置更高的Z-index并没有解决它.适用于所有其他浏览器(IE8,FF,Chrome,Safari)但不适用于IE7.有任何想法吗?

示例http://dl.dropbox.com/u/324237/autocomplete.png

med*_*iev 9

IE的堆叠顺序算法搞砸了.你必须将你想要的元素的父元素置于顶部,给它一个位置,就好像relative它还没有一个,以及一个正的z-index.

这通常会解决它.如果没有,继续尝试它的父母,直到你得到它.


小智 6

这是工作中较旧的IE z索引问题.您将需要回到DOM树中的第一级,其中交互元素的祖先是兄弟,并且在该级别,必须将z索引设置为将搜索/自动完成区域的父级设置为高于父级的内容.

要使其工作,您需要在#homepage_search上设置z-index,在其后的第一个div.wrapper项目上设置z-index,并且#homepage_search的z-index需要更高.我建议在#homepage_search之后的第一个.wrapper元素中添加一个唯一的类,以便为它编写CSS规则.在这种情况下,如果你崩溃你的DOM树(像firebug这样的东西)它最终看起来像你在下面看到的,所有div直接在"body"下.

+<body>
 +<div id="uservoice-feedback">
 +<div id="login">
 +<div id="header">
 +<div id="homepage">
 +<div id="homepage_search">  (give z-index: 2)
 +<div class="wrapper">       (give z-index: 1)
 +<div class="wrapper">
 +...
Run Code Online (Sandbox Code Playgroud)

我希望这是有道理的?您还需要将#homepage_search设置为具有相对或绝对定位,因此它甚至会尝试使用z-index.如果仍然没有运气,您可以尝试将该z-index为2添加到#homepage_search内的每个项目.