2012-03-05 56 views
2

我有類似:浮動的div,像對待行

<div id="container"> 
<div></div> 
<div></div> 
<div></div> 
<div></div> 
<div></div> 
<div></div> 
</div> 

我設置的容器明確修復和浮動的div容器內,就像這樣:

enter image description here

但是,當我有一個div中的額外文本,我想它推動其他divs,如果他們像一排,像這樣:

the divs should work like "rows" if possible

相反,因爲花車的,我得到更多的東西是這樣的:

enter image description here

我只是想知道,以去了解這一點的最好辦法。我可以把一個包裝圍繞每一個「行」,如:

<div id="container"> 
    <div class="row"> 
    <div></div> 
    <div></div> 
    <div></div> 
    </div> 
    <div class="row"> 
    <div></div> 
    <div></div> 
    <div></div> 
    </div> 
    div class="row"> 
    <div></div> 
    <div></div> 
    <div></div> 
    </div> 
</div> 

但是,這似乎是一個很多額外的非語義的div ...加上如果我動態生成的div(通過名單 - 在cms中查看)然後我必須添加額外的代碼來計算三個div的每個倍數...

+0

請爲當前場景做一個小提琴。謝謝 – diEcho 2012-03-05 04:18:37

+0

我想你的解決方案 – 2012-03-05 04:19:25

+0

你反對任何JavaScript? – 2012-03-05 04:21:07

回答

4

OOOh!地鐵瓷磚:)

這可能是一箇舊的(3歲)後,但仍然很好地解釋瞭如何做浮動高度一貫跨瀏覽器。

http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/

+0

謝謝!我剛剛看到了這個問題,並打算刪除這個問題......但我會打上覆選標記。 – redconservatory 2012-03-05 04:21:01

+3

+1小提琴在這裏:http://jsfiddle.net/r4pLq/ – steveax 2012-03-05 04:23:32

+0

哦整齊,所以它不一定是一個清單呢? – redconservatory 2012-03-05 04:32:44

1

嘗試是這樣的:

<div id="container"> 
    <div class="row"> 
    <div></div> 
    <div></div> 
    <div></div> 
    <div class="clear"></div> 
</div> 
<div class="row"> 
    <div></div> 
    <div></div> 
    <div></div> 
    <div class="clear"></div> 
</div> 
<div class="row"> 
    <div></div> 
    <div></div> 
    <div></div> 
    <div class="clear"></div> 
</div> 

然後在你的CSS文件:如果你想有一個新行

.clear { 
    clear: both; 
} 
0

,把下面:

<br style="clear: both; height: 0;" /> 
1

一個純CSS的方法是使用nth-child選擇清除所有的第三格:

<style type="text/css"> 
#container div:nth-child(3n+1) { 
    clear:left; 
} 
<style> 

這將無法工作在舊版本的IE,但是。

1

你可以嘗試在每行div之間使用像下面這樣清晰的類。但是,這並不總是適用於舊版瀏覽器。按照我的看法,你對排班做的事情是最好的做法。

.clear 
{ 
    display:block; 
    float:left; 
    width:100%; 
    clear:both; 
    height:1px; 
    }