Estoy usando Bootstrap 4 alpha 2 y aprovechándome de las cartas. Específicamente, estoy trabajando con este ejemplo tomado de los documentos oficiales. ¿Cómo puedo hacer que todas las tarjetas tengan la misma altura?
Todo lo que puedo pensar ahora es establecer la siguiente regla CSS:
.card {
min-height: 200px;
}
Pero esa es solo una solución codificada que no funcionará en un caso general. El código en mi opinión es el mismo que el de los documentos, es decir:
<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
fuente
fuente
card-columns
pero manteniendo la misma altura.Respuestas:
¿Puede poner las clases en la "fila" o en la "columna"? No será visible en las tarjetas (borde) si lo usa en la fila. https://v4-alpha.getbootstrap.com/utilities/flexbox/#align-items
Algunas de las otras respuestas aquí parecen "extravagantes". ¿Por qué usaría una altura mínima o incluso peor, una altura fija?
Pensé que este problema (alturas iguales) era parte del motivo de la progresión fuera de los divs de bloques flotantes.
fuente
Estoy usando Bootstrap 4 (Beta 2). Mientras tanto, la situación parece haber cambiado. Tuve el mismo problema y encontré una solución fácil. Este es mi codigo:
Con "col-sm-12 col-lg-6" he hecho que las tarjetas respondan. Con "card h-100" he colocado todas las tarjetas a la altura de su columna principal. En mi sistema esto funciona, pero no soy un profesional. Entonces, espero haber ayudado a alguien.
fuente
d-flex
causó problemas con IE (que tengo que admitir). Acabo de agregar unmb-4
div principal para separar las tarjetas un poco más.La mejor solución, Bootstrap 4 tiene todo lo que necesita: USE THE
.d-flex
y.flex-fill
class. No use elcard-decks
ya que no responden. Usécol-sm
, puedes usar la.col
clase que quieras o usarcol-lg-x
la x significa el número de columna de ancho, por ejemplo, 4 o 3 para una mejor vista si la publicación tiene muchas, luego 3 o 4 por columnaAquí está la bestia, intente reducir la ventana del navegador a XS para verla en acción:
fuente
card-columns
pero no podía tomar más de 3 columnas por fila. Gracias por esta respuestaPuede aplicar la clase
h-100
, que significa altura 100%.fuente
ACTUALIZACIÓN: En Bootstrap 4 , flexbox ahora es predeterminado y cada
card-deck
fila contendrá 3 tarjetas. Las tarjetas se llenarán a su altura máxima.http://www.codeply.com/go/x91w5Cl6ip
Bootstrap 4 alpha
card-columns
usa columnas CSS3 que realmente no admiten alturas iguales (excepto el relleno de columnas que solo se admite en Firefox).Si, en cambio, habilita el modo Flexbox de Bootstrap 4, puede usar
card-deck
y un poco de CSS para igualar la altura y ajustar cada 3 columnas.http://codeply.com/go/YFFFWHVoRB
Tarjeta Bootstrap relacionada
de la misma altura en Col
fuente
Así es como lo hice:
CSS:
HTML:
fuente
envuelve las cartas dentro
<div class="card-group"></div>
o
<div class="card-deck"></div>
fuente
Adopté un enfoque ligeramente diferente. Utilizando la envoltura de la baraja de cartas
Agregué una regla de estilo que limita la altura del bloque de cartas:
Esto da el siguiente resultado:
fuente
Puedes usar el mazo de cartas, alineará todas las cartas ... esto viene de la página oficial de bootstrap 4.
fuente
Otro enfoque útil son las cuadrículas de tarjetas :
fuente
La forma más mínima de lograr esto (que yo sepa) :
.text-monospace
a todos los textos de la tarjeta.ACTUALIZAR
Agregue
.text-truncate
el título de la tarjeta y otros textos. Esto obliga a los textos a tener una sola línea. Hacer que las cartas tengan la misma altura.fuente
Soy un novato en esto, así que por favor perdóneme si me estoy perdiendo algo.
Probé muchos de los anteriores. Si establece la altura = 100%, la tarjeta siempre se expandirá a la mayor longitud de la tarjeta más larga. El contenedor limitará todos a la misma longitud.
Quería ver el contenedor, así que usé el color de fondo para ayudarme a ver lo que estaba pasando.
fuente
Esto funcionó bien para mi:
forzando nuestro CSS sobre el CSS general de bootstraps.
fuente
Me encontré con este problema, la mayoría de la gente usa jQuery ... Aquí estaba mi solución. "No te preocupes, solo soy un principiante en esto ..."
Si la altura de cualquier elemento de la tarjeta es, por ejemplo, 400px (según su contenido), debido a que el valor predeterminado para flex-align es stretch, entonces .card-item (hijo de la fila o clase de colección de tarjetas) se estirará. hacer que la altura de la tarjeta sea 100% de la del padre ocupará esta altura completa.
Espero estar en lo correcto. Soy yo
fuente
Si alguien está interesado, hay un complemento de jquery llamado: jquery.matchHeight.js
https://github.com/liabru/jquery-match-height
matchHeight hace que la altura de todos los elementos seleccionados sea exactamente igual. Maneja muchos casos extremos que causan fallas en complementos similares.
Para una fila de cartas, uso:
Luego habilite todo el sitio:
fuente
jsfiddle
Simplemente agregue la altura que desee con CSS, ejemplo:
Deberá agregar su propio CSS.
Si revisa la documentación, esto es para el estilo de mampostería , el punto es que no todos tienen la misma altura.
fuente