Bootstrap-Reihe mit Säulen unterschiedlicher Höhe
Ich habe derzeit so etwas wie:
<div class="row">
<div class="col-md-4">Content</div>
<div class="col-md-4">Content</div>
<div class="col-md-4">Content</div>
<div class="col-md-4">Content</div>
<div class="col-md-4">Content</div>
<div class="col-md-4">Content</div>
<div class="col-md-4">Content</div>
<div class="col-md-4">Content</div>
<div class="col-md-4">Content</div>
</div>
Nun davon aus, dass content
war Boxen verschiedener Höhe, mit alle die gleiche Breite wie könnte ich die gleichen "grid-basierte layout" und doch haben Sie alle Felder line-up unter einander, und nicht in perfekten Linien.
Derzeit TWBS, wird die nächste Zeile col-md-4
unter dem längsten element in dem vorhergehenden Dritten Zeile., somit wird jede Zeile der Elemente ist perfekt aufeinander abgestimmt ein sauber - das ist zwar genial, will ich jedes Element zu fallen, die direkt unter das Letzte element ("Mauerwerk" - layout)
InformationsquelleAutor user3379926 | 2014-03-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine beliebte Bootstrap Frage, also ich habe aktualisiert und erweitert die Antwort für die Bootstrap-und Bootstrap 3 4...
Den Bootstrap 3 "Höhe problem" tritt auf, weil die Spalten verwenden
float:left
. Wenn eine Spalte "schwebte" er wird aus dem normalen Fluss des Dokuments. Es ist verschoben nach Links oder rechts, bis es berührt den Rand Ihrer mit box. Wenn du also ungleichmäßige Spalte Höhen, das richtige Verhalten ist, stapeln Sie auf der nächsten Seite.Hinweis: Die folgenden Optionen gelten für Spalte umbrechen Szenarien, wo es mehr als 12 col-Einheiten in einem einzigen
.row
. Für Leser, die nicht verstehen, warum es jemals sein mehr als 12 Spalten in einer Zeile, oder denke, die Lösung ist "auf separaten Zeilen" sollte zuerst LesenEs gibt ein paar Möglichkeiten, dies zu beheben.. (aktualisiert für das Jahr 2018)
1 - Die "clearfix" - Ansatz ( empfohlen von Bootstrap ), wie dies (erfordert iteration jeder X Spalten). Dies zwingt einen wrap jeder X Anzahl der Spalten...
Clearfix Demo (single-tier)
Clearfix Demo (responsive Stufen) - zB.
col-sm-6 col-md-4 col-lg-3
Gibt es auch eine CSS-only-Variante der 'clearfix'
CSS-only-clearfix mit Tabellen
2 - Stellen die Spalten die gleiche Höhe (mit flexbox):
Da das Problem wird verursacht, durch die Unterschied in der Höhe, können Sie Spalten gleich Höhe durch jede Zeile. Flexbox ist der beste Weg, dies zu tun, und ist nativ unterstützt Bootstrap-4...
Flexbox gleicher Höhe Demo
3 - Un-float-Spalten ein inline-block statt..
Wieder, die Höhe problem tritt nur auf, weil die Säulen schwebte. Eine weitere option ist, um die Spalten zu
display:inline-block
undfloat:none
. Dies bietet auch mehr Flexibilität für die vertikale Ausrichtung. Allerdings ist bei dieser Lösung muss es sein keine HTML-Leerzeichen zwischen den Spalten, da sonst die inline-block-Elemente mit zusätzlichem Speicherplatz und wickeln Sie vorzeitig.Demo von inline-block-Update
4 - CSS3-Säulen-Ansatz (Mauerwerk/Pinterest wie Lösung)..
Dies ist nicht native zu Bootstrap 3, aber ein anderer Ansatz mit CSS multi-columns. Ein Nachteil dieses Ansatzes ist die Reihenfolge der Spalten von oben nach unten statt von Links nach rechts. Bootstrap-4 enthält diese Art von
Lösung:
Bootstrap 4 Mauerwerk Karten Demo.
Bootstrap 3 multi-Spalten-Demo
5 - Mauerwerk JavaScript/jQuery-Ansatz
Schließlich, möchten Sie möglicherweise verwenden Sie eine plugin wie Isotope/Mauerwerk:
Bootstrap-Mauerwerk Demo
Mauerwerk Demo 2
Mehr über Bootstrap-Variable Höhe Spalten
Update 2018
Alle Spalten sind gleich hoch in Bootstrap-4, weil es verwendet flexbox standardmäßig, also die "Höhe " Problem" ist kein problem. Darüber hinaus Bootstrap-4 enthält diese Art von multi-Spalten-Lösung:
Bootstrap 4 Mauerwerk Karten Demo.
WooW! Sie verdienen bis meine Stimme für dieses bootply.com/120682. Mit Mauerwerk-plugin, es sieht gut aus auf das laden der Seite nicht gut, wenn Sie ziehen Sie zum anpassen der Bildschirm-Breite
Thx a lot für diese hervorragende Erklärung!
Die beste Antwort für dieses problem
dies löst mein problem 🙂
InformationsquelleAutor Zim
Für einige Grund dieser arbeitete für mich, ohne die .display-flex-Klasse
InformationsquelleAutor Steve Whitby
Erstellte ich eine weitere Erweiterung (die auch aktiv) zu der bootstrap-Reihe. Sie können versuchen, so etwas wie dieses:
.row.flexRow { display: flex; flex-wrap: wrap;}
InformationsquelleAutor Akash Yellappa
Col Summe innerhalb der twitter-bootsrap sollte everytime 12. Dies wird immer eine saubere raster design:
"Die col ist die Summe innerhalb der twitter-bootsrap sollte immer 12" ist nicht wahr. Lesen Sie über die Spalte umbrechen
InformationsquelleAutor Christian Michael