我运行到IE7的z-index堆叠错误,但我不能找到一个方法来解决它。这里有一个简单的HTML测试用例:IE7 z-index堆栈错误 - 如何正确堆栈2个绝对定位元素?
<!doctype html />
<html>
<head>
</head>
<body>
<div style="position:relative; width:500px;">
<div style="position:absolute; top:0; left:30px; width:300px; height:30px; border:1px solid #ff0000;">
<p style="margin:0;">Menu</p>
<ul style="position:absolute; z-index:100; list-style:none; margin:0; padding:0; background-color:#fff; border:1px solid #0000ff;">
<li><a href="#">Menu Item</a></li>
<li><a href="#">Menu Item</a></li>
<li><a href="#">Menu Item</a></li>
<li><a href="#">Menu Item</a></li>
<li><a href="#">Menu Item</a></li>
<li><a href="#">Menu Item</a></li>
</ul>
</div>
<div style="position:absolute; z-index:1; top:40px; width:500px; height:75px; background-color:#ccc;">
<p>Header</p>
</div>
</div>
</body>
</html>
在这个例子中,你会发现在顶层div中有两个绝对定位的元素。第一个是菜单,第二个是标题。菜单项目堆叠不正确,并显示在标题后面。
我读过很多关于IE7的z-index错误的帖子,但我没有发现任何东西,可以帮助我与此特定问题。谢谢!
'<!DOCTYPE HTML />'是不是一个有效的DOCTYPE。相反,使用'<!DOCTYPE html>'这应该阻止IE使用quirksmode。 – Zeta 2012-03-19 18:42:08