2012-12-14 44 views
2

在更大的固定寬度兩列塊內有塊名爲a,b,c,d的塊。使用純CSS的兩列布局

layout

我想ð左c和下方,可以使用純CSS來完成呢?

我都試過了,

CSS:

.wrapper { 
    border: 1px dotted #111; 
    width: 360px; 
    padding: 20px; 
    float: left; 
} 

.rectangle { 
    display: inline-block; 
    float: left; 
    border: 1px solid #333; 
    min-height: 100px; 
    width: 178px; 
} 

#a { 
    height: 248px; 
} 

#b { 
    height: 148px; 
} 

#c { 
    height: 198px; 
} 

#d { 
    height: 98px; 
} 

HTML:

<div class="wrapper"> 
<div id="a" class="rectangle">a</div> 
<div id="b" class="rectangle">b</div> 
<div id="c" class="rectangle">c</div> 
<div id="d" class="rectangle">d</div> 
</div>​ 

http://jsfiddle.net/imom0/E7GYR/1/

爲了簡單起見,我不喜歡使用JavaScript或masonry

+0

不是沒有修改的元素,不是真正的順序。 – cimmanon

+0

你應該知道'display:block-inline;'不存在。 'display:inline-block;'除此之外,你的問題對我來說不是很清楚。 – Stickers

+0

你必須支持哪些瀏覽器? –

回答

2

可以使用column-count CSS屬性是這樣的:

.wrapper { 
    border: 1px dotted #111; 
    width: 460px; 
    padding: 20px; 
    float: left; 
    column-count:2; 
} 

.rectangle { 
    display: inline-block; 
    border: 1px solid #333; 
    min-height: 100px; 
    width: 170px; 
} 

和調整你的HTML:

<div class="wrapper"> 
<div id="a" class="rectangle">a</div> 
<div id="d" class="rectangle">d</div> 
<div id="b" class="rectangle">b</div> 
<div id="c" class="rectangle">c</div> 
</div> 

column-count支持與大多數瀏覽器相應的供應商前綴。有關更多信息,請參見caniuse

An example fiddle can be found here.

+0

看來a,b,c,d是無序的。 – iMom0

+0

@ iMom0就像我說的,你將不得不重構你的HTML。在此表單中,您可以指定每列的內容。因此,首先在第一列中的所有元素,然後在第二列等... – Sirko

3

嘗試有正確的div 浮動權:http://jsfiddle.net/E7GYR/7/


HTML:

<div class="wrapper"> 
<div id="a" class="rectangle left">a</div> 
<div id="b" class="rectangle right">b</div> 
<div id="c" class="rectangle right">c</div> 
<div id="d" class="rectangle left">d</div> 
</div>​ 

CSS:

.wrapper { 
    border: 1px dotted #111; 
    width: 360px; 
    padding: 20px; 
    float: left; 
} 

.rectangle { 
    display: inline-block; 
    border: 1px solid #333; 
    min-height: 100px; 
    width: 178px; 
} 

.left 
{ 
    float:left;  
} 

.right 
{ 
    float:right 
} 

#a { 
    height: 248px; 
} 

#b { 
    height: 148px; 
} 

#c { 
    height: 198px; 
} 

#d { 
    height: 98px; 
} 
​ 
+0

對不起,我沒有完全解釋這個事實,a,b,c,d的高度並不確定 – iMom0

+0

這需要事先知道每個元素將在哪裏組合在一起,這可能是也可能不是痛苦在屁股來處理,如果它的動態生成(如從數據庫)。 – cimmanon