2014-06-13 44 views
25

我一直在試圖顯示每行三列。有沒有可能使用flexbox?如何顯示每行三列?

我現在的CSS是這樣的:

.mainDiv { 
    display: flex; 
    margin-left: 221px; 
    margin-top: 43px; 
} 

這個代碼將所有內容在一個單行。 我想添加一個約束來顯示每行三個記錄。

回答

47

這可能是你在找什麼:

http://jsfiddle.net/L4L67/

body>div { 
 
    background: #aaa; 
 
    display: flex; 
 
    flex-wrap: wrap; 
 
} 
 

 
body>div>div { 
 
    flex-grow: 1; 
 
    width: 33%; 
 
    height: 100px; 
 
} 
 

 
body>div>div:nth-child(even) { 
 
    background: #23a; 
 
} 
 

 
body>div>div:nth-child(odd) { 
 
    background: #49b; 
 
}
<div> 
 
    <div></div> 
 
    <div></div> 
 
    <div></div> 
 
    <div></div> 
 
    <div></div> 
 
    <div></div> 
 
</div>

+5

你的標記很混亂。這可行,但考慮讓你的例子更容易理解/閱讀。 –

+0

由於'flex-grow'的緣故,當只有一個或兩個'div's時,這將顯示一列或兩列。 – TheThirdMan

+0

如果您不想讓子元素伸展以填充空間,請移除「flex-grow」。 – cptstarling

2

找到了解決辦法:添加屬性flex-flow: row wrap;將解決問題。

.mainDiv { 
    display: flex; 
    margin-left: 221px; 
    margin-top: 43px; 
    width:100px; 
    flex-flow: row wrap; 
} 
+7

這不是這個問題的答案。 –

+0

我是問這個問題並回答的人。這是這個問題的答案。 – maxspan