2017-03-23 54 views
0

https://jsfiddle.net/0k02qsjw/1/爲什麼非流動兒童不浮動

.left1 { 

background-color:red; 
width:100px; 
height:100px; 
float:left; 

} 
.left2 { 

background-color:blue; 
width:100px; 
height:100px; 


} 

// left3 left4類似LEFT2。小提琴

<div class="left1">Div1</div> 
<div class="left2">Div2child</div> 
<div class="left3">Div3</div> 
<div class="left4">Div4</div> 

我正在學習浮動和在CSS清晰,我卡在一個問題。上面的例子中浮動符合預期,當我浮動每個div個別。當我向左漂移時,left2如預期般向上移動。但是,爲什麼左邊的孩子不動了?

我知道浮動的元素沒有流動 - >可能這就是爲什麼。 如果是這樣,爲什麼overflow:隱藏在left2上就像left2被浮動一樣(見下文)。
https://jsfiddle.net/0k02qsjw/2/

我需要幫助理解在這種情況下發生了什麼。這可能是

Floating elements within a div, floats outside of div. Why?

重複,但我找不到任何答案,我的具體問題存在。

回答

2

https://developer.mozilla.org/en-US/docs/Web/CSS/float

浮子CSS屬性指定的元素應該從正常流動採取並沿着左側或右側其容器,其中文本和內聯元素將環繞它放置。

所以,當你漂浮的元素,其他塊元素不浮動圍繞它 - 內聯和文本元素在相鄰的元件浮動周圍。

如果您漂浮.left1,則.left2中的內容不會上升並且會圍繞.left1,因爲它們寬度相同。 .left2需要比.left1更寬,因爲它的內聯和文本內容能夠環繞.left1。您可以將width.left2設置爲200pxhttps://jsfiddle.net/0k02qsjw/3/