Я использую Bootstrap 4 alpha 2 и использую карты. В частности, я работаю с этим примером, взятым из официальных документов. Как сделать все карточки одинаковой высоты?
Все, что я могу сейчас думать, это установить следующее правило CSS:
.card {
min-height: 200px;
}
Но это просто жестко запрограммированное решение, которое в общем случае не сработает. Код, на мой взгляд, такой же, как и в документации, т.е.
<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
источник
источник
card-columns
но с той же высотой.Ответы:
Вы можете поместить классы в «строку» или «столбец»? Не будет видно на карточках (рамке), если вы используете ее в строке. https://v4-alpha.getbootstrap.com/utilities/flexbox/#align-items
Некоторые другие ответы здесь кажутся «дурацкими». Зачем использовать минимальную высоту или, что еще хуже, фиксированную высоту?
Я думал, что эта проблема (равная высота) была одной из причин отказа от плавающих блоков div?
источник
h-100
как карточку, так и нижние колонтитулы карточек, чтобы все они совпадалиЯ использую Bootstrap 4 (Beta 2). Между тем ситуация вроде бы изменилась. У меня была такая же проблема, и я нашел простое решение. Это мой код:
С помощью "col-sm-12 col-lg-6" я сделал карточки отзывчивыми. С помощью «card h-100» я установил все карты на высоту их родительского столбца. В моей системе это работает, но я не профессионал. Итак, надеюсь, я кому-то помог.
источник
d-flex
возникли проблемы с IE (который я должен поддерживать). Я просто добавилmb-4
в родительский div, чтобы еще немного разделить карточки.Лучшее решение, Bootstrap 4 имеет все , что вам нужно: использовать
.d-flex
и.flex-fill
класс. Не используйте,card-decks
поскольку они не реагируют. Я использовалcol-sm
, вы можете использовать нужный.col
класс или использоватьcol-lg-x
x означает номер столбца ширины, например, 4 или 3 для лучшего просмотра, если в сообщении много, а затем 3 или 4 на столбецВот зверь, попробуйте уменьшить окно браузера до XS, чтобы увидеть его в действии:
источник
card-columns
но не могло занимать более трех столбцов в строке. Спасибо за этот ответВы можете применить класс
h-100
, который обозначает высоту 100%.источник
ОБНОВЛЕНИЕ: в Bootstrap 4 теперь по умолчанию используется flexbox, и каждая
card-deck
строка будет содержать 3 карты. Карты заполнятся на всю высоту.http://www.codeply.com/go/x91w5Cl6ip
Альфа-
card-columns
версия Bootstrap 4 использует столбцы CSS3, которые на самом деле не поддерживают равную высоту (за исключением заполнения столбцов, которое поддерживается только в Firefox).Если вы вместо этого включите режим Flexbox в Bootstrap 4, вы можете вместо этого использовать
card-deck
CSS и немного для выравнивания высоты и переноса каждые 3 столбца.http://codeply.com/go/YFFFWHVoRB
Связанная
карта начальной загрузки той же высоты в столбце
источник
Вот как я это сделал:
CSS:
HTML:
источник
заверните карты внутрь
<div class="card-group"></div>
или
<div class="card-deck"></div>
источник
Я использовал несколько иной подход. Использование обертки колоды карт
Я добавил правило стиля, ограничивающее высоту блока карты:
Это даст следующий результат:
источник
Вы можете использовать колоду карт, она выровняет все карты ... это взято с официальной страницы bootstrap 4.
источник
Еще один полезный подход - карточные сетки :
источник
Самый минимальный способ добиться этого (о котором я знаю) :
.text-monospace
ко всем текстам в карточке.ОБНОВИТЬ
Добавьте
.text-truncate
название карты и другие тексты. Это переводит текст в одну строку. Делаем карточки одинаковой высоты.источник
Я новичок в этом, поэтому, пожалуйста, простите, если я чего-то упускаю.
Я пробовал многое из вышеперечисленного. Если вы установите высоту = 100%, карта всегда будет расширяться до максимальной длины самой длинной карты. Контейнер будет ограничивать все одинаковой длины.
Я хотел увидеть контейнер, поэтому использовал цвет фона, чтобы понять, что происходит.
источник
это сработало для меня:
принудительное использование нашего CSS поверх общего CSS начальной загрузки.
источник
Я столкнулся с этой проблемой, большинство людей используют jQuery ... Вот мое решение. «Не возражайте, я в этом только новичок ...»
Если высота любого элемента карты составляет, например, 400 пикселей (в зависимости от его содержимого), поскольку по умолчанию для flex-align установлено значение stretch, то .card-item (дочерний элемент класса row или card-collection) будет растянут. установка высоты карты, равной 100% от высоты родителя, займет всю эту высоту.
Надеюсь, я был прав. Я?
источник
Если кому-то интересно, есть плагин jquery под названием: jquery.matchHeight.js
https://github.com/liabru/jquery-match-height
matchHeight делает высоту всех выбранных элементов точно равной. Он обрабатывает множество крайних случаев, когда аналогичные плагины не работают.
Для ряда карточек я использую:
Затем включите для всего сайта:
источник
jsfiddle
Просто добавьте нужную высоту с помощью CSS, например:
Вам нужно будет добавить свой собственный CSS.
Если вы проверите документацию, это для стиля масонства - дело в том, что они не все одинаковой высоты.
источник