非常确定这是一个IE6错误,因为它适用于所有其他浏览器。
<div style="background:blue; width:600px; margin-left:auto; margin-right:auto;">
BLUE
<div style="background:red; position:absolute; width:100%; left:0;">
red
</div>
</div>
所以“RED”div应该是其容器的100%宽度(在这种情况下是主体)。在IE6中,它始终是600px。是否有一个修复它不涉及忽略ie6? (我希望我能,相信我!)
答案 0 :(得分:1)
元素相对于其第一个定位(非静态)祖先元素定位。
绝对位置元素将 relative 定位到具有静态位置的第一个父元素。如果未找到此类元素,则包含块为<html>
因此,为了让你的内部div相对于它的父级定位为“绝对”,你必须使它的父位置 relative
jsFiddle showing your code with parent div relative
<div style="background:blue; width:600px; margin-left:auto; margin-right:auto;position:relative">BLUE
<div style="background:red; position:absolute; width:100%; left:0;">red</div>
</div>
对于你的其他情况(ie6 bug?),我需要更多代码。