2013-02-25 59 views
0

很确定这是一个IE6错误,因为它在所有其他浏览器中都有效。在固定宽度内使元素达到100%的身体 - IE6 BUG

jsFiddle of this html code

 <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” 分区应该是它的容器的100%的宽度(在这种情况下,体)。在IE6中它始终是600px。有没有解决它,不涉及忽略ie6? (我希望我可以,相信我!)

+0

如果没有CSS和完整的HTML,我无法为您提供帮助。并有1年 - 4个月的成员,你必须明白我的意思。 – 2013-02-25 13:14:16

+0

你可以尝试设置'position:relative'到身体。 – 2013-02-25 13:15:07

+3

现在只有约1%的访问者使用IE6浏览器。我不会在乎它。 – Stano 2013-02-25 13:15:24

回答

1

该元素相对于其第一个定位的(非静态的)祖先元素进行定位。 绝对位置元素被定位为相对于到第一个具有非静态位置的父元素。如果没有找到这样的元素,包含块是<html>

所以,对于要positionned你内心的div“绝对”相对于它的父,你将不得不作出它的父positionned 相对

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错误?),我需要更多的代码。

+0

@Shauna感谢编辑;) – 2013-02-25 14:52:05

+0

感谢您设置小提琴。 - 我会在下一次做。 我了解相对位置的工作原理。在我的情况下,它会从身体...它除了IE 6以外的所有浏览器。它就像它总是从它的容器获得宽度。有趣的是,你可以用“left:0”将它定位在身体上,但宽度总是在容器上。 – user1010892 2013-02-26 10:30:31