2014-06-13 7 views
25

Ich habe versucht, drei Spalten pro Zeile anzuzeigen. Ist es möglich, flexbox zu verwenden?Wie kann ich drei Spalten pro Zeile anzeigen?

Mein aktueller CSS ist so etwas wie dieses:

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

Dieser Code setzt alle Inhalte in einer einzigen Zeile. Ich möchte eine Einschränkung hinzufügen, zeigt nur drei Datensätze pro Zeile.

Antwort

47

Dies kann sein, was Sie suchen:

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

Ihr Markup ist verwirrend. Dies funktioniert, aber in Anbetracht dessen, dass Ihr Beispiel leichter zu verstehen/zu lesen ist. –

+0

Dies wird eine oder zwei Spalten anzeigen, wenn nur ein oder zwei 'div's in der Seite sind, aufgrund von' flex-grow'. – TheThirdMan

+0

Entfernen Sie 'flex-grow', wenn Sie nicht möchten, dass sich die untergeordneten Elemente ausdehnen, um den Platz zu füllen. – cptstarling

2

Eine Lösung gefunden: Durch Hinzufügen der Eigenschaft flex-flow: row wrap; wird das Problem behoben.

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

Das für diese Frage keine Antwort ist. –

+0

Ich bin die Person, die diese Frage gestellt und beantwortet hat. Und es ist die Antwort auf diese Frage. – maxspan

Verwandte Themen