2014-06-13 12 views
25

Tôi đã cố gắng hiển thị ba cột mỗi hàng. Có thể sử dụng flexbox không?Tôi làm cách nào để hiển thị ba cột trên mỗi hàng?

CSS hiện tại của tôi là một cái gì đó như thế này:

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

Mã này đặt tất cả nội dung trong một hàng duy nhất. Tôi muốn thêm một ràng buộc để chỉ hiển thị ba bản ghi mỗi hàng.

Trả lời

47

Đây có thể là những gì bạn đang tìm kiếm:

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

Đánh dấu của bạn gây nhầm lẫn. Điều này làm việc nhưng xem xét làm cho ví dụ của bạn dễ hiểu/dễ đọc hơn. –

+0

Điều này sẽ hiển thị một hoặc hai cột khi chỉ có một hoặc hai 'div' ở bên cạnh, do' flex-grow'. – TheThirdMan

+0

Xóa 'flex-grow' nếu bạn không muốn các phần tử con căng ra để lấp đầy không gian. – cptstarling

2

Tìm thấy giải pháp: Thêm thuộc tính flex-flow: row wrap; sẽ giải quyết vấn đề.

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

Đây không phải là một câu trả lời cho câu hỏi này. –

+0

Tôi là người đã đặt câu hỏi này và trả lời câu hỏi này. Và đó là câu trả lời cho câu hỏi này. – maxspan

Các vấn đề liên quan