2011-03-13 113 views
1

我有这样的东西:浮动:左问题

<div id="div1"> 
<div style="float:left;width:100px;height:100px;"></div> 
</div> 

而且DIV1似乎已经为0x0大小,而不是为100x100。为什么?

+1

也许你需要清理你的浮动。试试''清除:两者;“ />'里面''div1“'在另一个DIV之后。 – Orbling 2011-03-13 13:20:19

+0

@Orbling为什么不能在#div1元素上使用'overflow:auto'? – 2011-03-13 13:40:28

+0

@ŠimeVidas:这是一个很好的做法,一般清理浮体。 – Orbling 2011-03-13 13:49:53

回答

7

#div1本身没有浮动,所以它似乎并不包含内部的div。浮动需要normal flow中的一个元素,因此#div1种不知道它的孩子了。

要做到这一点,你也需要浮动#div1,或给它overflow: hidden使其包含其内部div的浮点数(或使用clearfix)。

+0

什么是clearfix? – 2011-03-13 13:24:38

+3

@ Bogdan0x400:clearfix是一个您使用的标记,除了清除浮动之外不会执行任何操作。例如'
或'

' – BoltClock 2011-03-13 13:25:32

2

只需设置

#div1{ 
    overflow:hidden; 
} 

或者添加

<br style="clear:both" /> 

就在#div1结束标记之前。