Saya menggunakan Bootstrap 4 alpha 2 dan memanfaatkan kartu. Secara khusus, saya sedang mengerjakan contoh ini diambil dari dokumen resmi. Bagaimana saya bisa membuat semua kartu memiliki tinggi yang sama?
Yang bisa saya pikirkan sekarang adalah mengatur aturan CSS berikut:
.card {
min-height: 200px;
}
Tapi itu hanya solusi kode keras yang tidak akan berfungsi dalam kasus umum. Kode dalam pandangan saya sama dengan yang ada di dokumen yaitu:
<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
sumber
sumber
card-columns
tetapi menjaga ketinggian yang sama.Jawaban:
Anda bisa meletakkan kelas di "baris" atau "kolom"? Tidak akan terlihat di kartu (perbatasan) jika Anda menggunakannya di baris. https://v4-alpha.getbootstrap.com/utilities/flexbox/#align-items
Beberapa dari jawaban lain di sini tampak 'aneh'. Mengapa menggunakan ketinggian minimum atau lebih buruk lagi ketinggian tetap?
Saya pikir masalah ini (ketinggian yang sama) adalah bagian dari alasan untuk menjauh dari div blok mengambang?
sumber
Saya menggunakan Bootstrap 4 (Beta 2). Sementara situasinya tampaknya telah berubah. Saya memiliki masalah yang sama dan menemukan solusi yang mudah. Ini kode saya:
Dengan "col-sm-12 col-lg-6" saya telah membuat kartu menjadi responsif. Dengan "kartu h-100" saya telah mengatur semua kartu ke ketinggian kolom induknya. Di sistem saya, ini berfungsi, tetapi saya bukan seorang profesional. Jadi, semoga saya membantu seseorang.
sumber
d-flex
menyebabkan masalah dengan IE (yang harus saya dukung). Saya baru saja menambahkanmb-4
div induk untuk memisahkan kartu sedikit lagi.Solusi terbaik, Bootstrap 4 memiliki semua yang Anda butuhkan: GUNAKAN THE
.d-flex
dan.flex-fill
kelas. Jangan gunakancard-decks
karena tidak responsif. Saya dulucol-sm
, Anda dapat menggunakan.col
kelas yang Anda inginkan, atau menggunakancol-lg-x
x berarti jumlah kolom lebar misalnya 4 atau 3 untuk tampilan terbaik jika posting memiliki banyak maka 3 atau 4 per kolomInilah binatangnya, coba kurangi jendela browser ke XS untuk melihatnya beraksi:
sumber
card-columns
tetapi tidak dapat mengambil lebih dari 3 kolom per baris. Terima kasih atas jawaban iniAnda dapat menerapkan kelas
h-100
, yang berarti tinggi 100%.sumber
UPDATE: Di Bootstrap 4 , flexbox sekarang default, dan setiap
card-deck
baris akan berisi 3 kartu. Kartu akan terisi penuh.http://www.codeply.com/go/x91w5Cl6ip
Bootstrap 4 alpha
card-columns
menggunakan kolom CSS3 yang tidak benar-benar mendukung ketinggian yang sama (kecuali kolom-isi yang hanya didukung di Firefox).Jika Anda malah mengaktifkan mode flexbox Bootstrap 4, Anda dapat menggunakan
card-deck
dan sedikit CSS untuk menyamakan tinggi dan membungkus setiap 3 kolom.http://codeply.com/go/YFFFWHVoRB
Kartu Bootstrap Terkait
dengan Tinggi yang sama di Col
sumber
Inilah cara saya melakukannya:
CSS:
HTML:
sumber
bungkus kartu di dalamnya
<div class="card-group"></div>
atau
<div class="card-deck"></div>
sumber
Saya mengambil pendekatan yang sedikit berbeda. Menggunakan pembungkus Card Deck
Saya menambahkan aturan gaya yang membatasi tinggi blok kartu:
Ini memberikan hasil sebagai berikut:
sumber
Anda dapat menggunakan kartu-deck, ini akan menyelaraskan semua kartu ... ini berasal dari halaman resmi bootstrap 4.
sumber
Pendekatan berguna lainnya adalah Card Grids :
sumber
Cara paling minimal untuk mencapai ini (yang saya tahu) :
.text-monospace
untuk semua teks di dalam kartu.MEMPERBARUI
Tambahkan
.text-truncate
judul kartu dan atau teks lainnya. Ini memaksa teks menjadi satu baris. Pembuatan kartu memiliki tinggi yang sama.sumber
Saya seorang pemula dalam hal ini jadi mohon maaf jika saya kehilangan sesuatu.
Saya mencoba banyak cara di atas. Jika Anda mengatur tinggi = 100%, kartu akan selalu memuai hingga panjang terbesar dari kartu terpanjang. Kontainer akan membatasi semua dengan panjang yang sama.
Saya ingin melihat wadahnya, jadi saya menggunakan warna latar belakang untuk membantu saya melihat apa yang sedang terjadi.
sumber
ini bekerja dengan baik untuk saya:
memaksa CSS kita di atas bootstraps CSS umum.
sumber
Saya menemukan masalah ini, kebanyakan orang menggunakan jQuery ... Inilah solusi saya. "Tidak apa-apa, saya hanya pemula dalam hal ini ..."
Jika ada tinggi item kartu misalnya 400px (berdasarkan isinya), karena default untuk flex-align adalah stretch, maka .card-item (anak dari baris atau kelas card-collection) akan diregangkan. membuat tinggi kartu menjadi 100% induk akan menempati tinggi penuh ini.
Saya harap saya benar. Apakah saya
sumber
Jika ada yang tertarik, ada plugin jquery bernama: jquery.matchHeight.js
https://github.com/liabru/jquery-match-height
matchHeight membuat tinggi semua elemen yang dipilih sama persis. Ini menangani banyak kasus tepi yang menyebabkan plugin serupa gagal.
Untuk deretan kartu, saya menggunakan:
Kemudian aktifkan seluruh situs:
sumber
jsfiddle.dll
Cukup tambahkan tinggi yang Anda inginkan dengan CSS, contoh:
Anda harus menambahkan CSS Anda sendiri.
Jika Anda memeriksa dokumentasinya, ini untuk gaya Masonry - intinya adalah tingginya tidak semua sama.
sumber