如何强制div从浮动div

时间:2013-07-04 16:51:37

标签: html

我有以下浮动div:

+---------------+ +-----------+
|               | |           |
|               | |   Div-B   |
|               | |Float:left |
|               | |           |
|     Div-A     | |           |
|  Float: left  | +-----------+
|- - - - - - - -|-+-----------+
|               | |           |
|     Ext       | |  Div-C    |
|               | |           |
|- - - - - - - -|-+-----------+
|               |
+---------------+

如你所见,我有三个div,其中Div-A和Div-B向左浮动。由于Div-C(没有Ext区域)没有浮动属性,它会跳转到Div-A右侧的空白区域。因此,Div-C的左边界应该与Div-A的右边界相邻。实际上,这也正在发生,即Div-C中的文本从Div-A的右边界开始。但在Google-Chrome浏览器中,在开发人员工具中,我可以看到Div-C的左边界实际上与Div-A的左边界相邻。 我的问题是为什么Google-Chrome在Div-A的左边界附近显示Div-C的左边界?

2 个答案:

答案 0 :(得分:1)

根据CSS2.1规范for floats

,这是正确的行为
  

由于浮动不在流中,因此创建了未定位的块框   在浮动框垂直流动之前和之后,好像浮动没有   存在。但是,旁边创建的当前和后续行框   必要时缩短浮子以为边缘盒腾出空间   浮动。

因此浮点数不会影响正常块的边界,只会影响文本。该块仍然占据容器的完全可访问宽度,并且浮子只是重叠它。但是,对于建立new block formatting context的块(例如具有display:table或overflow:hidden)的块,情况会发生变化。这些块可能会缩短其文本的宽度(并且在所有浏览器中都这样做,尽管规范并不严格要求这样做。)

答案 1 :(得分:0)

如果div-c中有足够的文本超过div-a的底部,它将环绕div-a的底部,然后与其左边界相邻。