Ich habe ein flüssiges Layout mit dem Bootstrap von Twitter, wobei ich eine Zeile mit zwei Spalten habe. Die erste Spalte enthält viel Inhalt, den ich normalerweise ausfüllen möchte. Die zweite Spalte enthält nur eine Schaltfläche und Text, den ich unten relativ zur Zelle in der ersten Spalte ausrichten möchte.
Folgendes habe ich:
-row-fluid-------------------------------------
+-span6----------+ +-span6----------+
| | |short content |
| content | +----------------+
| that |
| is tall |
| |
+----------------+
-----------------------------------------------
Folgendes möchte ich:
-row-fluid-------------------------------------
+-span6----------+
| |
| content |
| that |
| is tall | +-span6----------+
| | |short content |
+----------------+ +----------------+
-----------------------------------------------
Ich habe Lösungen gesehen, die die erste Spanne zu einer absoluten Höhe machen und die zweite Spanne relativ dazu positionieren, aber eine Lösung, bei der ich die absolute Höhe meiner Divs nicht angeben musste, wäre vorzuziehen. Ich bin auch offen für ein völliges Umdenken, wie man den gleichen Effekt erzielt. Ich bin nicht mit dieser Verwendung des Gerüsts verheiratet, es schien mir nur am sinnvollsten zu sein.
Dieses Layout als Geige:
quelle
Antworten:
Bitte beachten Sie: Für Benutzer von Bootstrap 4+ sollten Sie die Lösung von Christophe in Betracht ziehen (Bootstrap 4 führte die Flexbox ein, die eine elegantere Nur-CSS-Lösung bietet). Das Folgende funktioniert für frühere Versionen von Bootstrap ...
Eine funktionierende Lösung finden Sie unter http://jsfiddle.net/jhfrench/bAHfj/ .
Auf der positiven Seite:
pull-down
.Nun die schlechte Nachricht:
quelle
.pull-left
und aufweist.pull-right
), ohne die Geschwister zu beeinträchtigen. Kann das mit einer Nur-CSS-Lösung gemacht werden?Dies ist eine aktualisierte Lösung für Bootstrap 3 (sollte jedoch für ältere Versionen funktionieren), die nur CSS / LESS verwendet:
http://jsfiddle.net/silb3r/0srp42pb/11/
Sie setzen die Schriftgröße in der Zeile auf 0 (andernfalls entsteht ein lästiger Abstand zwischen den Spalten), entfernen dann die Spalten-Floats, setzen die Anzeige auf
inline-block
, setzen ihre Schriftgröße neu undvertical-align
können dann auf eingestellt werden Alles was du brauchst.Keine jQuery erforderlich.
quelle
div
s auf zu setzenvertical-align: middle;
..myrow
) von der Zeile getrennt. Bedeutet dies nicht, dass Sie nicht eine Spalte oben, eine Spalte unten und eine dritte Spalte oben ausgerichtet haben können?Sie können flex verwenden:
quelle
Sie müssen einen Stil hinzufügen für
span6
Folgendes:und das ist deine Geige: http://jsfiddle.net/sgB3T/
quelle
padding-left: 0
undpadding-right: 0
auf allen Spalten in dieser Zeile.Hier ist auch eine AngularJS-Direktive zum Implementieren dieser Funktionalität
quelle
Stellen Sie einfach die Eltern auf
display:flex;
und das Kind auf einmargin-top:auto
. Dadurch wird der untergeordnete Inhalt am unteren Rand des übergeordneten Elements platziert, vorausgesetzt, das übergeordnete Element hat eine größere Höhe als das untergeordnete Element.Es ist nicht erforderlich, einen Wert zu berechnen,
margin-top
wenn Ihr übergeordnetes Element eine Höhe oder ein anderes Element aufweist, das größer ist als das untergeordnete interessierende Element in Ihrem übergeordneten Element.quelle
Basierend auf den anderen Antworten ist hier eine noch reaktionsschnellere Version. Ich habe Änderungen an Iwans Version vorgenommen, um Ansichtsfenster mit einer Breite von <768 Pixel und eine bessere Unterstützung für langsame Fenstergrößenänderungen zu unterstützen.
quelle
margin-top
auf 0 setzen und dann wieder auf den neuen Wert setzen? Warum machen diese Dinge auch in zweieach()
"Schleifen"?Dies basiert auf der Lösung von cfx, aber anstatt die Schriftgröße im übergeordneten Container auf Null zu setzen, um die Zwischenspalten zu entfernen, die aufgrund der Anzeige hinzugefügt wurden: Inline-Block und sie zurücksetzen zu müssen, habe ich einfach hinzugefügt
zu der Spalte divs zu kompensieren.
quelle
Nun, ich mochte keine dieser Antworten, meine Lösung des gleichen Problems bestand darin, Folgendes hinzuzufügen :
<div> </div>
. In Ihrem Schema würde es also so aussehen (mehr oder weniger), dass in meinem Fall keine Stiländerungen erforderlich waren:quelle
hinzugefügt werden müssen, wenn die Länge der linken Zelle unbekannt ist?quelle