2014-08-28 53 views
0

所以我试图在一个div内运行3个浮动,我遇到了这个问题。div内浮动太多

http://jsfiddle.net/sPUjQ/101/click me

每当我运行两个花车的背景颜色停留,但是当我尝试3辆花车然后就不见了!

有人可以告诉我发生了什么,为什么这样做?在做内联块时我不会遇到这种情况,只是float:left。

回答

1

当浮动子div时,父级因为从正常文档流中删除而折叠。添加overflow:auto父恢复你以后的行为:

.contain { 
    display: block; 
    background: blue; 
    margin: 0 auto; 
    overflow:auto; 
} 

jsFiddle example

+0

或者只是改变你的花车为display:inline-block的 – beauXjames 2014-08-28 02:56:04

+0

该诀窍!。你是否碰巧有链接来解释这种行为的更多细节?它为什么会发生这种情况没有任何意义。 – user1576493 2014-08-28 03:00:22

+0

好吧,为了深入了解花车,请参阅https://developer.mozilla.org/en-US/docs/Web/CSS/float和http://www.w3.org/TR/CSS2/visuren .html#floats – j08691 2014-08-28 03:02:06

0

你想保留两.contains蓝色背景是什么?如果是,那么你将不得不删除float: leftchildren of .contains并添加display: inline

见我修改code

希望它能帮助。

+0

我知道如何做内联,只是因为浮动和内联视觉工作相同,但行为不同。不过谢谢。 – user1576493 2014-08-28 03:08:13

0

试试下面的例子中, 浮法各自独立,

.contain{width: 100%; background: blue; margin: 0 auto;} 
.one, .four{float: left; background: red;} 
.two, .five{float: left; background: orange;} 
.three, .six{float: left; background: yellow;} 

http://jsfiddle.net/ShamalSandeep/km8twgvf/1/

+0

我试图保留蓝色。试图理解为什么它消失。 – user1576493 2014-08-28 03:06:23