Ich benutze Bootstrap 4 Alpha 2 und nutze die Vorteile von Karten. Insbesondere arbeite ich mit diesem Beispiel aus den offiziellen Dokumenten. Wie kann ich alle Karten auf die gleiche Höhe bringen?
Jetzt kann ich nur noch die folgende CSS-Regel festlegen:
.card {
min-height: 200px;
}
Dies ist jedoch nur eine fest codierte Lösung, die im Allgemeinen nicht funktioniert. Der Code in meiner Ansicht ist der gleiche wie der in den Dokumenten, dh:
<div class="card-columns">
<div class="card">
<img class="card-img-top" data-src="..." alt="Card image cap">
<div class="card-block">
<h4 class="card-title">Card title that wraps to a new line</h4>
<p class="card-text">This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
</div>
</div>
<div class="card card-block">
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
<footer>
<small class="text-muted">
Someone famous in <cite title="Source Title">Source Title</cite>
</small>
</footer>
</blockquote>
</div>
<div class="card">
<img class="card-img-top" data-src="..." alt="Card image cap">
<div class="card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
</div>
</div>
<div class="card card-block card-inverse card-primary text-xs-center">
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat.</p>
<footer>
<small>
Someone famous in <cite title="Source Title">Source Title</cite>
</small>
</footer>
</blockquote>
</div>
<div class="card card-block text-xs-center">
<h4 class="card-title">Card title</h4>
<p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
</div>
<div class="card">
<img class="card-img" data-src="..." alt="Card image">
</div>
<div class="card card-block text-xs-right">
<blockquote class="card-blockquote">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
<footer>
<small class="text-muted">
Someone famous in <cite title="Source Title">Source Title</cite>
</small>
</footer>
</blockquote>
</div>
<div class="card card-block">
<h4 class="card-title">Card title</h4>
<p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</p>
<p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
</div>
</div>
html
css
twitter-bootstrap
bootstrap-4
bootstrap-cards
blueSurfer
quelle
quelle
card-columns
aber die gleiche Höhe zu halten.Antworten:
Sie können die Klassen entweder in die "Zeile" oder die "Spalte" setzen? Wird auf den Karten (Rand) nicht sichtbar sein, wenn Sie es in der Reihe verwenden. https://v4-alpha.getbootstrap.com/utilities/flexbox/#align-items
Einige der anderen Antworten hier scheinen "verrückt" zu sein. Warum sollte eine Mindesthöhe oder noch schlimmer eine feste Höhe verwendet werden?
Ich dachte, dieses Problem (gleiche Höhen) sei Teil des Grundes für die Abkehr von schwebenden Block-Divs?
quelle
Ich benutze Bootstrap 4 (Beta 2). Inzwischen scheinen sich die Situationen geändert zu haben. Ich hatte das gleiche Problem und fand eine einfache Lösung. Das ist mein Code:
Mit "col-sm-12 col-lg-6" habe ich die Karten reaktionsschnell gemacht. Mit "Karte h-100" habe ich alle Karten auf die Höhe ihrer übergeordneten Spalte gesetzt. Auf meinem System funktioniert das, aber ich bin kein Profi. Hoffentlich habe ich jemandem geholfen.
quelle
d-flex
Probleme mit dem IE verursacht wurden (die ich unterstützen muss). Ich habe gerade einmb-4
zum übergeordneten Div hinzugefügt , um die Karten ein wenig mehr zu trennen.Die beste Lösung, Bootstrap 4, bietet alles, was Sie brauchen: USE THE
.d-flex
und.flex-fill
class. Verwenden Sie das nicht,card-decks
da sie nicht reagieren. Ich habe verwendetcol-sm
, Sie können die.col
gewünschte Klasse verwenden oder verwendencol-lg-x
die x bedeutet Anzahl der Breitenspalten, z. B. 4 oder 3, für die beste Ansicht, wenn der Beitrag viele als 3 oder 4 pro Spalte hatHier ist das Biest. Versuchen Sie, das Browserfenster auf XS zu reduzieren, um es in Aktion zu sehen:
quelle
card-columns
aber es konnte nicht mehr als 3 Spalten pro Zeile dauern. Vielen Dank für diese AntwortSie können die Klasse anwenden
h-100
, die für Höhe 100% steht.quelle
UPDATE: In Bootstrap 4 ist Flexbox jetzt die Standardeinstellung und jede
card-deck
Zeile enthält 3 Karten. Die Karten werden bis zur vollen Höhe gefüllt.http://www.codeply.com/go/x91w5Cl6ip
Der Bootstrap 4 alpha
card-columns
verwendet CSS3-Spalten, die nicht wirklich gleiche Höhen unterstützen (mit Ausnahme der Spaltenfüllung, die nur in Firefox unterstützt wird).Wenn Sie stattdessen den Bootstrap 4-Flexbox-Modus aktivieren, können Sie stattdessen das
card-deck
und ein wenig CSS verwenden, um die Höhe auszugleichen und alle 3 Spalten zu umbrechen .http://codeply.com/go/YFFFWHVoRB
Verwandte
Bootstrap-Karte gleicher Höhe in Spalte
quelle
So habe ich es gemacht:
CSS:
HTML:
quelle
Wickeln Sie die Karten ein
<div class="card-group"></div>
oder
<div class="card-deck"></div>
quelle
Ich habe einen etwas anderen Ansatz gewählt. Verwenden des Kartendeck-Wrappers
Ich habe eine Stilregel hinzugefügt, die die Höhe des Kartenblocks begrenzt:
Dies ergibt folgendes Ergebnis:
quelle
Sie können das Kartenspiel verwenden, es werden alle Karten ausgerichtet ... diese stammen von der offiziellen Bootstrap 4-Seite.
quelle
Ein weiterer nützlicher Ansatz ist Card Grids :
quelle
Der minimalste Weg, dies zu erreichen (den ich kenne) :
.text-monospace
alle Texte auf der Karte anwenden .AKTUALISIEREN
Fügen Sie
.text-truncate
den Titel der Karte und andere Texte hinzu. Dies zwingt Texte in eine einzelne Zeile. Die Karten haben die gleiche Höhe.quelle
Ich bin ein Anfänger in diesem Bereich, bitte verzeihen Sie, wenn mir insgesamt etwas fehlt.
Ich habe viele der oben genannten ausprobiert. Wenn Sie die Höhe auf 100% setzen, wird die Karte immer auf die größte Länge der längsten Karte erweitert. Der Container wird alle auf die gleiche Länge beschränken.
Ich wollte den Container sehen, also benutzte ich Hintergrundfarbe, um zu sehen, was los war.
quelle
das hat bei mir gut funktioniert:
Erzwingen unseres CSS über das Bootstraps Allgemeines CSS.
quelle
Ich bin auf dieses Problem gestoßen, die meisten Leute verwenden jQuery ... Hier war meine Lösung. "Macht nichts, ich bin nur ein Anfänger in diesem ..."
Wenn eine Kartenelementhöhe z. B. 400 Pixel (basierend auf dem Inhalt) beträgt, weil die Standardeinstellung für Flex-Align Stretch ist, wird .card-Element (untergeordnetes Element der Zeilen- oder Kartensammelklasse) gestreckt. Wenn die Höhe der Karte 100% des Elternteils beträgt, wird diese volle Höhe belegt.
Ich hoffe ich hatte recht. Bin ich
quelle
Wenn jemand interessiert ist, gibt es ein jquery-Plugin namens: jquery.matchHeight.js
https://github.com/liabru/jquery-match-height
Mit matchHeight ist die Höhe aller ausgewählten Elemente genau gleich. Es behandelt viele Edge-Fälle, bei denen ähnliche Plugins fehlschlagen.
Für eine Reihe von Karten verwende ich:
Aktivieren Sie dann die gesamte Site:
quelle
jsfiddle
Fügen Sie einfach die gewünschte Höhe mit CSS hinzu, Beispiel:
Sie müssen Ihr eigenes CSS hinzufügen.
Wenn Sie die Dokumentation überprüfen, ist dies für den Mauerwerksstil - der Punkt ist, dass sie nicht alle gleich hoch sind.
quelle