IE7令人抓狂地在div下显示列而不是它

时间:2010-05-17 20:26:09

标签: css internet-explorer z-index

如果您在IE7中查看此页面:http://65.60.10.2/~marionin/,为什么浅紫色标题(“Spotlights”,“Serendipity Projects”,“Marion Institute Blog”)隐藏在深紫色乐队的下方?

我已经开火了,直到我的手指受伤,但我无法理解。列div在块div之后写入,因此它们应显示在顶部。  即使将块和列的位置设置为相对位置,使用z-index进行填充也无济于事。

[当然,正如预期的那样,Firefox,Safari,Opera和Chrome中的一切看起来都很好。]

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

IE有可怕的z-index错误,通常无法理解。在使用IE开发人员工具栏进行一些调整之后,我能够使其在IE 7中运行。

我注意到由于某种原因,许多元素都在其上定义了z-index,但这些元素并没有出现在HTML中。您是否正在运行设置任何z索引的脚本?我注意到它们是相反的顺序,这意味着高级元素具有比低级元素更高的z索引。这是在IE中创建大量错误的一种方法。 HTML在层次结构中出现的越深,其z-index应该越高。

我开始删除相关容器上的z-index,从正文到<div>中的两个#main-content。我在position: relative上设置#main-content,但未定义z-index。我在position: relative中的两个<div>上设置了#main-content,并将z-index分别设置为100和200。

#content内,第一个<div>,我添加了z-index: 110,第二个<div>(带有小图片的块行)我添加了z-index: 120

这似乎让IE 7行为正常。

如果还有其他任何我未提及z-index的内容,请尝试将其删除并从头开始。定义z-index的元素越少,IE的行为就越少。

答案 1 :(得分:0)

#block-block-11 {
    position: static;
}

...快速解决CalebD雄辩详述的更大问题。