Wie zu verwenden css3 flexbox, multi-column layout ohne ausbau des vertikal?
Spiele ich mit dem css3 - flexbox-in Chrom (sorgen Sie sich nicht um cross-browser). Ich habe eine harte Zeit zu überzeugen, dass es lag, mein Inhalt, die Art, wie ich möchte. Hier ist eine Skizze von meinem Ziel:
Hier ein jsFiddle meinen Versuch: http://jsfiddle.net/Yht4V/2/ Dies scheint gut zu funktionieren, außer jede .group
erweitern Ihre Höhe eher als das erstellen mehrerer Spalten.
Ich bin mit flexbox-weltweit hier. Die body
legt sich senkrecht, mit der #content
div Einnahme der verbleibenden Höhe der Seite. Jeder .group
ist horizontal angeordnet. Schließlich wird jeder .item
angeordnet ist innerhalb eines .group
vertikal mit der Verpackung.
Leider jeder .group
endet als eine einzelne Spalte, die durch den ausbau der #content
Höhe, wodurch eine vertikale Bildlaufleiste (unerwünschte). Wenn ich die Höhe der einzelnen .group
zu einer festen pixel-Größe, die Elemente, die brechen in mehrere Spalten, aber diese Niederlagen der Fluidität der flexbox. Hier sieht es aus mit festen Höhen: http://jsfiddle.net/Yht4V/3/
So, wie kann ich meine #content
div nicht vertikal erweitern, da ist alles geschafft mit flexboxes ohne Einstellung einer festen Höhe? Ich hatte erwartet, die flexbox auslösen, mehr Spalten, anstatt den ausbau der Höhe des übergeordneten Elements ein und verursacht einen Scrollbalken.
Ich experimentiere mit einem Windows 8 "metro" - style-design mit plain HTML/CSS, so dass im Idealfall jede Gruppe möchte hinzufügen, Spalten horizontal als nötig und verursachen eine horizontale Bildlaufleiste
iff
notwendig (so fügen Sie Elemente vertikal ersten, dann wickeln Sie nach der Spalte horizontal). Ich sehe Möglichkeiten, dies zu erreichen mit JS, aber hatte gehofft, es könnte getan werden, nur mit HTML5/CSS3 in Webkit.Beantworten Sie Fragen direkt: ja, es sollte Flüssigkeit unabhängig von der Höhe/Breite des Bildschirms (ich habe keine Kontrolle über die screen-Größe). Jedes Element ist die Feste Größe, die durch design, dies gilt für meinen endgültigen Umsetzung. Vielleicht nicht die genauen Maße, aber fest dennoch. Schließlich, wie ich oben erwähnt, Elemente füllen sollten, dann vertikal-überlauf-horizontal.
InformationsquelleAutor Bret Kuhns | 2012-12-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was ich gesehen habe mit dem Chrome-und Opera-Implementierungen für Flexbox, ein
flex-direction
von Spalte erfordert die Beschränkung der Höhe des Elements, sonst wird es weiter ausbauen, vertikal. Es muss nicht ein Fixer Wert ist, kann es einen Prozentsatz.Sagte, das layout, das Sie möchten für Ihre
.group
Elemente können auch erreicht werden, indem die CSS-Spalten-Modul. Der Fluss der Elemente werden ähnlich wie die flexbox-Spalte Orientierung, aber es wird Spalten erstellen, solange es genug Breite für Sie, unabhängig davon, wie lang das Dokument ist.http://jsfiddle.net/Yht4V/8/ (du musst entschuldigen Sie die fehlenden Präfixe)
Verlassen, als eine Reihe von verschachtelten flexboxes, das war ungefähr so nah, wie ich bekommen konnte:
http://jsfiddle.net/Yht4V/9/ (wieder, keine Präfixe)
InformationsquelleAutor cimmanon
Ersetzen Sie Folgendes in der css
display: -webkit-flex;
die folgenden
display: -webkit-box;
Dies funktionierte sehr gut für mich 🙂
InformationsquelleAutor Deepa