2014-07-08 306 views
0

下面的HTML的目標是在同一水平線上有紅色和藍色的div,甚至認爲藍色div由於寬度較大而被截斷。 This jsfiddle顯示即使黑色/容器樣式具有overflow:hidden藍色div不會被截斷。這個HTML有什麼問題?爲什麼溢出:隱藏不隱藏?

<div id="row1" style="width:600px;height:100px;background-color:black;position:relative;overflow:hidden;"> 
    <div id="c1" style="width:400px;height:30px;background-color:red;float:left">aaaa</div> 
    <div id="c2" style="width:400px;height:30px;background-color:blue;float:left">bbbb</div> 
</div> 
+0

要隱藏在這裏做什麼,內格比外層div – Kasma

+0

小得多'div's強制換行作爲其默認的顯示屬性爲'block'。 – shennan

+0

這是你在http://jsfiddle.net/j08691/4n23D/之後? – j08691

回答

0

浮動元素將水平堆疊,直到到達其父容器的邊緣。此時,下一個浮動元素將落到下一行,其餘元素將再次堆疊在一起。

爲了達到你要找的效果,你將需要一個容器的父容器,這個容器的寬度足以容納所有的浮動元件。

那麼,只有這樣,你可以放置另一個容器放在父母的周圍,它將會限制溢出。

<div id="row1" style="width:600px;height:100px;background-color:black;position:relative;overflow:hidden;"> 
    <div style="width:800px"> 
     <div id="c1" style="width:400px;height:30px;background-color:red;float:left">aaaa</div> 
     <div id="c2" style="width:400px;height:30px;background-color:blue;float:left">bbbb</div> 
    </div> 
</div> 

http://jsfiddle.net/THEtheChad/me4gj/7/

0

當父級沒有足夠的空間來容納它們時,浮動會下降到下一行。

0

當您使用float:並且父div或對象沒有空間前進並顯示它時,它只顯示下一行或下一個區域中的所有內容。

也許只是增加一些更多的高度值可以修復它或隨後調低包含在該區域中的對象的大小。

0

首先,由於容器的寬度 - 這是float的基本行爲,內部divs正在包裝。 另外,「overflow:hidden」在代碼中以不同的方式工作。 當內容浮動時:左側或右側並且容器溢出:隱藏,則容器將自動包裝整個內容而不是隱藏內容。 欲瞭解更多詳情,請查看All About Floats