Ich brauche Lücken zwischen den Elementen in meinem Spaltenlayout loszuwerden. Ich kann das neueste css3 verwenden, da die Seite auf moderne Browser/Geräte ausgerichtet ist, aber ich muss eine JavaScript-Lösung vermeiden, so dass die Seite vom Server nicht basierend auf der Breite des Clients neu gerendert werden muss.CSS-Spalten/Flexbox ohne Lücken zwischen den Elementen
Mit Flexbox, CSS-Spalten und anderen Tricks muss ich ein Pinterest-like-Layout entlocken. (Pinterest verwendet Javascript und absolute Positionierung für ihr Layout, es wird nicht einmal mit deaktivierter js gerendert.) Die Site hat Boxen mit bekannter Breite aber variabler Höhe. Die Anzahl der Spalten muss basierend auf der Browserbreite variieren. (Ich kann diese Abfragen über Medien tun, wenn ich weiß, was CSS-Attribut zu ändern.) Hier ist, wie das aussieht: via
Beachten Sie auch, dass ich nicht nur die Höhe des Behälters erhöhen zu füllen der leere Raum. Ich möchte den Gegenstand darunter stellen, nicht alle Höhen zusammenbringen. (So Stretching Artikel 1, 3 und 4 im Bild oben nicht das, was ich will.)
Dinge, die ich versucht habe:
CSS 3 Spalten. Das sieht gut aus, aber die Artikel sind in der falschen Reihenfolge, wobei der zweite Artikel unter dem ersten steht. Wenn dies in eine andere Reihenfolge geändert werden kann, so dass sie von links nach rechts gehen, großartig!
Flexbox verschiedene Flexbox-Konfigurationen, ich habe fast jede Einstellung ausprobiert, die ich ändern konnte.
Javascript. Ja, ich weiß, dass ich manuell Spalten erstellen und sie bei der Größenänderung erneut rendern kann. Ich möchte eine teure Neu-Render-Operation vermeiden, die einen manuellen Abgleich von Spalten und Anzeige erfordert. Für ältere Browser, die keine css3-Lösung unterstützen, kann ich darauf zurückgreifen. Ich möchte auch vermeiden, alle Elemente manuell zu positionieren. Brutto.
Ich habe einen Kommentar Link zu JSFiddle setzen, weil ich es nicht hier als „Links benötigen Code jsfiddle“ setzen können.
Mauerwerk Set? http://maurryon.desandro.com/ – sinisterfrog
werfen Sie einen Blick auf diesen Link: http://css-tricks.com/fluid-width-equal-height-columns/ es könnte Ihnen helfen. – dippas
verwenden: align-self: strecken; , so nehmen in jeder Reihe alle Boxen die Höhe der höchsten an, um Lücken zwischen Reihen/Linien zu füllen. –