2010-08-29 62 views
1

与未知高度的另一格内100%我有一个简单的HTML布局:高度:在IE6

<div style="position:relative; width:200px"> 
    <div style="position:absolute; top:0; left:0; background-color:red; z-index:-1; width:100%; height: 100%"></div> 
    Some text goes here.... 
</div> 

事情是这样的作品在所有浏览器很好,除了IE6。随着文本的添加,顶部div被拉伸,绝对位置div也被拉伸。但在IE6中,绝对位置div总是只能保持1行高度。我知道IE6不能动态地重新计算大小,因此你必须在身体标记上设置高度:100%,如果你想在页面的任何位置使用高度:100%,但在这种情况下, t设置高度:100%的外部div,因为我希望它只是正确的大小的文本里面。任何帮助?

+0

我已经开始了一个jsFiddle来演示这个问题:http://jsfiddle.net/yetdP/(记住问题只发生在IE6中)。目前正在寻找一种解决这个问题的优雅方式。 – 2010-08-31 13:19:25

+0

我在想这与IE的'hasLayout'属性有关。这不是可以直接编辑的东西,强迫它的所有方法都失败了,但我猜测它就是这样。 – 2010-09-02 12:15:11

+0

通常在IE中修复hasLayout问题的简单方法是设置缩放:1.我已经尝试过了,尽管... – 2010-09-02 14:06:48

回答

0

经过大量的测试和调查后,我得出了一个结论,除了JavaScript之外,没有办法解决IE6的这个问题,这对我不起作用。所以我不得不改变一下结构。最终的结果看起来是这样的:

<div style="position:relative; width:200px; background-color:red;"> 
    <div style="margin: -10px -20px">Some text goes here....</div> 
</div> 

这种方式,内div的内容是要在其上设置内部DIV和负利润的高度,将确保外层的div始终是20像素大在内容div的高度和40px更大的宽度。我知道答案在查看问题时没有任何意义,但它的工作方式与我需要的完全一样,因为它允许我在背景(外部div)上创建多个div,并将图像调整为div边距,以便它占据与所有背景div相同的空间量。

0

overflow: hidden;添加到绝对div。

+0

试过,它什么也没做.. – 2010-08-29 03:40:58

0

这是IE6中的一个已知错误,但对于我的生活我无法回想起解决方案。我会查找它,但是,从我的头顶开始,尝试添加'line-height:1'或某个值,并查看它是否修复它。

+0

谢谢,试过了行高,溢出,所有标准的东西,没有任何工作。但行高和溢出是用于修复其他IE6问题,甚至空divs总是有一行文本的高度... – 2010-08-31 13:59:41