Estou usando o Bootstrap 4 alpha 2 e aproveitando os cartões. Especificamente, estou trabalhando com este exemplo retirado dos documentos oficiais. Como posso fazer com que todos os cartões tenham a mesma altura?
Tudo o que posso pensar agora é definir a seguinte regra CSS:
.card {
min-height: 200px;
}
Mas essa é apenas uma solução codificada que não funcionará em um caso geral. O código, em minha opinião, é o mesmo dos documentos, ou seja:
<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
fonte
fonte
card-columns
mas mantendo a mesma altura.Respostas:
Você pode colocar as classes na "linha" ou na "coluna"? Não ficará visível nos cartões (borda) se você usá-lo na linha. https://v4-alpha.getbootstrap.com/utilities/flexbox/#align-items
Algumas das outras respostas aqui parecem 'malucas'. Por que usar uma altura mínima ou, pior ainda, uma altura fixa?
Achei que esse problema (alturas iguais) fosse parte do motivo da progressão para longe das divs de bloco flutuante.
fonte
Estou usando o Bootstrap 4 (Beta 2). Enquanto isso, a situação parece ter mudado. Tive o mesmo problema e encontrei uma solução fácil. Este é o meu código:
Com "col-sm-12 col-lg-6" tornei os cartões responsivos. Com "cartão h-100", coloquei todos os cartões na altura de sua coluna pai. No meu sistema isso funciona, mas não sou um profissional. Então, espero ter ajudado alguém.
fonte
d-flex
causou problemas com o IE (que devo oferecer suporte). Acabei de adicionar ummb-4
ao div pai para separar um pouco mais os cartões.Melhor solução, o Bootstrap 4 tem tudo que você precisa: USE O
.d-flex
e.flex-fill
classe. Não use os,card-decks
pois eles não respondem. Eu useicol-sm
, você pode usar a.col
classe que quiser, ou usarcol-lg-x
o x significa número de coluna de largura, por exemplo, 4 ou 3 para melhor visualização se o post tiver mais de 3 ou 4 por colunaAqui está a besta, tente reduzir a janela do navegador para XS para vê-la em ação:
fonte
card-columns
mas não conseguia mais do que 3 colunas por linha. Obrigado por esta respostaVocê pode aplicar a classe
h-100
, que significa altura 100%.fonte
ATUALIZAÇÃO: No Bootstrap 4 , o flexbox agora é o padrão e cada
card-deck
linha conterá 3 cartões. Os cartões serão preenchidos com a altura total.http://www.codeply.com/go/x91w5Cl6ip
O Bootstrap 4 alpha
card-columns
usa colunas CSS3 que realmente não suportam alturas iguais (exceto preenchimento de coluna que só é suportado no Firefox).Se, em vez disso, você habilitar o modo flexbox do Bootstrap 4, poderá usar o
card-deck
e um pouco de CSS para equalizar a altura e agrupar a cada 3 colunas.http://codeply.com/go/YFFFWHVoRB
Cartão Bootstrap Relacionado
de mesma Altura na Col
fonte
Aqui está como eu fiz:
CSS:
HTML:
fonte
embrulhe os cartões dentro
<div class="card-group"></div>
ou
<div class="card-deck"></div>
fonte
Eu fiz uma abordagem um pouco diferente. Usando o invólucro do Card Deck
Eu adicionei uma regra de estilo que limita a altura do bloco do cartão:
Isso dá o seguinte resultado:
fonte
Você pode usar o baralho de cartas, ele irá alinhar todas as cartas ... isso vem da página oficial do bootstrap 4.
fonte
Outra abordagem útil são as grades de cartão :
fonte
A maneira mais mínima de conseguir isso (que eu saiba) :
.text-monospace
a todos os textos do cartão.ATUALIZAR
Adicione
.text-truncate
o título do cartão e ou outros textos. Isso força os textos a uma única linha. Fazer as cartas têm a mesma altura.fonte
Eu sou um novato nisso, então, por favor, perdoe se eu estiver perdendo alguma coisa.
Eu tentei muitos dos itens acima. Se você definir a altura = 100%, o cartão sempre se expandirá para o maior comprimento do cartão mais longo. O contêiner restringirá todos ao mesmo comprimento.
Eu queria ver o contêiner, então usei a cor de fundo para me ajudar a ver o que estava acontecendo.
fonte
isso funcionou bem pra mim:
forçando nosso CSS sobre o CSS geral de bootstraps.
fonte
Me deparei com esse problema, a maioria das pessoas usa jQuery ... Aqui estava minha solução. "Não se preocupe, eu sou apenas um iniciante nisso ..."
Se a altura de qualquer item de cartão for, por exemplo, 400px (com base em seu conteúdo), porque o padrão para flex-align é esticar, então .card-item (filho de linha ou classe de coleção de cartão) será esticado. fazer com que a altura do cartão seja 100% da altura do pai ocupará essa altura total.
Espero estar correto. Sou eu?
fonte
Se alguém estiver interessado, existe um plugin jquery chamado: jquery.matchHeight.js
https://github.com/liabru/jquery-match-height
matchHeight torna a altura de todos os elementos selecionados exatamente igual. Ele lida com muitos casos extremos que fazem com que plug-ins semelhantes falhem.
Para uma linha de cartas, eu uso:
Em seguida, habilite todo o site:
fonte
jsfiddle
Basta adicionar a altura desejada com CSS, exemplo:
Você terá que adicionar seu próprio CSS.
Se você verificar a documentação, isso é para o estilo de alvenaria - o ponto é que eles não têm a mesma altura.
fonte