Bootstrap 3 колонки одинаковой высоты: Как сделать колонки одинаковой высоты в Bootstrap3? — Хабр Q&A

Содержание

html — Как сделать карточки в bootstrap 4 одинаковой высоты

html — Как сделать карточки в bootstrap 4 одинаковой высоты — Stack Overflow на русском



Stack Overflow на русском — это сайт вопросов и ответов для программистов. Присоединяйтесь! Регистрация займёт не больше минуты.

Присоединиться к сообществу


Любой может задать вопрос


Любой может ответить


Лучшие ответы получают голоса и поднимаются наверх



Вопрос задан


Просмотрен
4k раз

Подскажите пожалуйста, как сделать карточки в bootstrap 4 одинаковой высоты, в которых разный текст. И из за этой мелочи карточки разной высоты.


задан 28 мар ’18 в 19:38

1

Используйте bootstrap правильно и будет вам счастье.

.col-sm-4 {
  border: 1px solid
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>

<div>
  <div class=row>
    <div>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit.
    </div>
    <div>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Architecto dolorem dolores, est fuga fugiat officiis sunt vero voluptates
    </div>
    <div>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Architecto dolorem dolores, est fuga fugiat officiis sunt vero voluptates. Aliquid id in libero minus mollitia, nihil officia quos ratione sit soluta!
    </div>
  </div>
</div>

узнать про botstrap 4 больше


ответ дан 28 мар ’18 в 23:18

KirillKirill


9,06922 золотых знака1414 серебряных знаков3131 бронзовый знак


Всё ещё ищете ответ? Посмотрите другие вопросы с метками html css css3 html5 или задайте свой вопрос.

default





Stack Overflow на русском лучше работает с включенным JavaScript



Ваша конфиденциальность


Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.



Принять все файлы cookie



Настроить параметры




 




Как я могу сделать колонки Bootstrap одинаковой высоты?

Чтобы ответить на ваш вопрос, это все, что вам нужно, чтобы увидеть полную отзывчивую демонстрацию с префиксом css :

/* Using col-xs media query breakpoint but you can change 481 to 768 to only apply to col-sm and above if you'd like*/

@media only screen and (min-width : 481px) {
    .flex-row {
        display: flex;
        flex-wrap: wrap;
    }
    .flex-row > [class*='col-'] {
        display: flex;
        flex-direction: column;
    }
    .flex-row.row:after, 
    .flex-row.row:before {
        display: flex;
    }
}

Чтобы добавить поддержку для содержимого эскиза flex в столбцах flex, как на скриншоте выше, также добавьте следующее … Обратите внимание, что вы можете сделать это и с панелями:

.flex-row .thumbnail,
.flex-row .caption {
    display: flex;
    flex: 1 0 auto;
    flex-direction: column;
}
.flex-text {
    flex-grow: 1;
}    
.flex-row img {
    width: 100%;
}

Хотя flexbox не работает в IE9 и ниже, вы можете использовать демонстрацию с запасным вариантом, используя условные теги с чем-то вроде сетки javascript в качестве полизаполнения:

<!--[if lte IE 9]>

<![endif]-->

Что касается двух других примеров в принятом ответе … Табличная демонстрация — неплохая идея, но она реализуется неправильно. Применение CSS к классам столбцов начальной загрузки, без сомнения, полностью нарушит структуру сетки. Вы должны использовать пользовательский селектор для одной и двух таблиц, стили которых не должны применяться к тем, [class*='col-']которые имеют определенную ширину. Этот метод следует использовать ТОЛЬКО, если вы хотите столбцы одинаковой высоты и одинаковой ширины. Он не предназначен для любых других макетов и НЕ является адаптивным. Однако мы можем сделать это запасным вариантом на мобильных дисплеях …

<div>
<div>
    Content...
</div>
<div>
    Content...
</div>
</div>
@media only screen and (min-width : 480px){
    .table-row-equal {
        display: table;
        width: 100%;
        table-layout: fixed;
        border-spacing: 30px 0px;
        word-wrap: break-word;
    }
    .table-row-equal .thumbnail {
        float: none;
        display: table-cell;
        vertical-align: top;
        width: 1%;
    }
}

Наконец, первая демонстрация в принятом ответе, которая реализует версию единого истинного макета, является хорошим выбором для некоторых ситуаций, но не подходит для столбцов начальной загрузки. Причина этого заключается в том, что все столбцы расширяются до высоты контейнера. Так что это также нарушит отзывчивость, так как столбцы расширяются не до элементов рядом с ними, а всего контейнера. Этот метод также не позволит вам больше применять нижние поля к строкам, а также вызовет другие проблемы, такие как прокрутка для привязки тегов.

Для полного кода см. Codepen, который автоматически добавляет префикс кода flexbox.

Как сделать столбцы с одинаковой высотой


Узнайте, как создать столбцы с одинаковой высотой с помощью CSS.


Создание столбцов с одинаковой высотой

Когда у вас есть столбцы, которые должны появляться бок о бок, вы часто хотите, чтобы они были одинаковой высоты (соответствует высоте высокий).


Шаг 1) добавить HTML:

Пример

 
   
Column 1
    Hello World
 

  <div>
    <h3>Column 2</h3>
   
<p>Hello World!</p>
    <p>Hello World!</p>
   
<p>Hello World!</p>
    <p>Hello World!</p>
  </div>

  <div>
    <h3>Column 3</h3>
   
<p>Some other text..</p>
    <p>Some other text..</p>
 
</div>
</div>

Шаг 2) добавить CSS:

Пример

.col-container {
    display: table; /* Make the
container element behave like a table */
    width: 100%; /*
Set full-width to expand the whole page */
}

.col {
   
display: table-cell; /* Make elements inside the container behave like table
cells */
}



Отзывчивая равная высота

Столбцы, которые мы сделали в предыдущем примере, являются отзывчивыми (если вы изменяете размер окна браузера в примере пример, то увидите, что они автоматически корректируются на нужную ширину и высоту). Однако, для небольших экранов (например, смартфонов), вы можете хотеть, чтобы они стек вертикально, а не горизонтально:

On medium and large screens:

Hello World.

Hello World.

Hello World.

On small screens:

Hello World.

Hello World.

Hello World.

Чтобы добиться этого, добавьте медиа-запрос и укажите значение пиксела точки останова, когда это должно произойти:

Пример

/* If the browser window is smaller than 600px, make the columns stack on top
of each other */
@media only screen and (max-width: 600px) {
    .col {

        display: block;
       
width: 100%;
    }
}


Одинаковая высота и ширина с помощью Flexbox

Также можно использовать Flexbox для создания одинаковых высотных коробок:

Пример

.col-container {
  display: flex;
  width: 100%;
}
.col {
 
flex: 1;
  padding: 16px;
}

Примечание: Flexbox не поддерживается в Internet Explorer 10 и более ранних версиях.

Совет: Узнайте больше о гибких коробках в нашем CSS Flexbox учебнике.

twitter-bootstrap — css — bootstrap 4


bootstrap cdn / css

Я использую Bootstrap.Как я могу сделать три колонки одинаковой высоты?

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div>
<div>
    <div>
        some content
    </div>
    <div>
        catz
        <img src="https://lorempixel.com/100/100/cats/">
    </div>
    <div>
        some more content
    </div>
</div>
</div>






Kodos Johnson




Answer #1

Некоторые из предыдущих ответов объясняют,как сделать div’ы одинаковой высоты,но проблема в том,что при слишком маленькой ширине div’ы не будут складываться,поэтому вы можете реализовать их ответы с одной дополнительной частью.Для каждой из них вы можете использовать имя CSS,указанное здесь,в дополнение к классу строки,который вы используете,поэтому div должен выглядеть следующим образом,если вы хотите,чтобы div всегда находились рядом друг с другом:

<div>Your Content Here</div>

Для всех экранов:

.row-eq-height-xs {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display:         flex;
    flex-direction: row;
}

Для случаев,когда вы хотите использовать sm:

.row-eq-height-sm {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display:         flex;
    flex-direction: column;
}
@media (min-width:768px) {
    .row-eq-height-sm {
        flex-direction: row;
    }
}

Для тех случаев,когда вы хотите сделать md:

.row-eq-height-md {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display:         flex;
    flex-direction: column;
}
@media (min-width:992px) {
    .row-eq-height-md {
        flex-direction: row;
    }
}

Для случаев,когда вы хотите использовать большие:

.row-eq-height-lg {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display:         flex;
    flex-direction: column;
}
@media (min-width:1200px) {
    .row-eq-height-md {
        flex-direction: row;
    }
}
.row-eq-height {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}



DIV-ные колонки одинаковой высоты на CSS

По роду занятий, сталкиваясь с потребностями начинающих вебмастеров сверстать каркас страницы интернет магазина строго по прихотям заказчика, приходится время от времени подсказывать какие-то мелочи и помогать в нахождении лёгких решений нетипичных задач.

Одна из таких — используя только обожаемую заказчиком DIV-ную вёрстку и вообще не привлекая JavaScript, дать колонкам сайта автоматическое выравнивание высоты по наиболее заполненной колонке, подобно тому как это происходило бы в нелюбимой табличной вёрстке.

Ниже предлагаю элементарное решение на основе всего двух объявлений в стилях сайта и одного обёрточного контейнера в теле страницы. Решение валидно для множества браузеров, кроме IE6-IE7, и при удалении одного свойства из стилей, привнесённых этим решением, может быть преобразовано под браузеры без поддержки CSS3.


Предположим, есть следующая разметка: шапка, три колонки (левая, центральная, правая) и подвал
страницы.



«!DOCTYPE HTML»
«html»
    «head»
        «title» Пример колонок одинаковой высоты на CSS «/title»
    «/head»

    «body»
        «div» шапка «/div»

        «div»   левая колонка       «/div»
        «div» центральная колонка «/div»
        «div»  правая колонка      «/div»

        «div» подвал «/div»
    «/body»
«/html»



Шаг 1 Первым делом оборачиваем будущие колонки в DIV-контейнер. Например,
назначим ему класс columns.



«!DOCTYPE HTML»
«html»
    «head»
        «title» Пример колонок одинаковой высоты на CSS «/title»
    «/head»

    «body»
        «div» шапка «/div»

        «div»
            «div»   левая колонка       «/div»
            «div» центральная колонка «/div»
            «div»  правая колонка      «/div»
        «/div»

        «div» подвал «/div»
    «/body»
«/html»



Шаг 2 Осталось прописать в стили сайта следующее:




.columns {
    display: table;
    width: 100%;
    -webkit-box-sizing: border-box;  
       -moz-box-sizing: border-box;  
            box-sizing: border-box;  
    margin-left: 0;
    margin-right: 0;
}


.columns » div,
.columns » noindex » div {
    display: table-cell;
    vertical-align: top;
    width: auto;
    position: relative;
    -webkit-box-sizing: border-box;  
       -moz-box-sizing: border-box;  
            box-sizing: border-box;  
}



Здесь мы указали браузеру, что требуем обёрточный контейнер показывать как блочную таблицу на всю
ширину родителя, причём для исключения непредвиденных искажений размеры таблицы просим рассматривать
по её границам (плюс неучитываемые margin-отступы с боков погашаем
намеренно, иначе размер исказится). А вложенные в эту обёртку первородные DIV-ы призываем показывать
как ячейки таблицы с подстраиваемой шириной (подстройку высоты браузер делает сам) и таким же
рассмотрением размеров ячеек по их границам, а не по границам содержащегося в них контента.



Заметка В CSS2 не поддерживается свойство box-sizing,
поэтому для старых браузеров, в случае необходимости указать размеры ячеек, делать это нужно
за вычетом значений border- и padding-отступов.



Шаг 3 (опциональный). Теперь если бы мы, например, захотели боковые
колонки сделать фиксированного размера, то в стилях просто нужно прописать желаемые ограничительные
размеры колонок. Допустим, желаем левую колонку — 300 пикселей, а правую — 200 пикселей и вдобавок
с отсечением невольно выступивших за край частей её содержимого.




.columns » .left,
.columns » noindex » .left {
    max-width: 300px;
    min-width: 300px;
    width: 300px;
}


.columns » .right,
.columns » noindex » .right {
    max-width: 200px;
    min-width: 200px;
    width: 200px;
    overflow: hidden;
}



Заметка Такое указание родства объектов, как использовано в
продемонстрированном примере, необходимо для гарантии срабатывания стилевых правил лишь на
конкретные колонки, принадлежащие непосредственно обёртке. А добавочное причисление случая
с тегом noindex служит цели отработать ситуацию, когда SEO-шник сайта
решил отдельную колонку закрыть от индексирования поисковыми серверами (нынче в строении
интернет магазинов это бывает принципиальной деталью).


Явные достоинства


  • простая реализация;
  • гарантированная одинаковая высота колонок;
  • колонки легко переставляются местами при необходимости;
  • легко добавить дополнительные колонки или изъять лишние;
  • колонки запросто скрываются от индексирования оборачиванием в тег noindex;
  • это не float-решение, поэтому отсутствует дефект «соскакивание колонки на новую строку».


Важная SEO-деталь такого решения состоит в том, что стилизация DIV-колонок под ячейки таблицы не наносит
урон поисковому продвижению страницы. Ведь согласно спецификации, стилевые правила описывают, как
элементы разметки будут выглядеть на экране браузера, и ни в коем случае не переопределяют тип содержимого
элемента. То есть в примере выше стиль лишь предписывал браузеру показывать DIV-колонки ПОДОБНО
ячейкам таблицы. Не считать их ячейками, а именно показывать как ячейки. Как же браузер и поисковый робот
должны интерпретировать элемент, это задано тегом элемента. В данном примере разметкой было указано, что
колонку требуют интерпретировать как DIV (division, раздел), но никак не TD (table division, раздел таблицы)
лишь на основании, что элемент станет внешне похожим на ячейку.


Недостатки



  • не работает в браузерах IE6, IE7 — они изначально не поддерживают свойство
    display: table в стилях;

  • в браузере Safari 3.1 требуется удвоенная обёртка DIV-ами — здесь свойство
    display: table-cell дочернего объекта первого родства работает
    при наличии пары родительских контейнеров, вложенных один в другой со свойствами
    display: table и
    display: table-row;

  • нельзя использовать боковые margin-отступы у обёрточного DIV-а, если
    одновременно задаём ему ширину не в форме width: auto, потому
    что при рассмотрении размеров объекта браузер не принимает во внимание размеры
    margin-отступов, следовательно правый край объекта «уедет» дальше
    положенного на величину неучтённого отступа;

  • у колонок не получится задать margin-отступы, потому что браузер
    игнорирует всяческую манипуляцию такими отступами в объектах со свойством
    display: table-cell;

  • строго неподвижная фиксация ширины колонок вне зависимости от ширины их содержимого (то есть когда
    край колонки не сместится, даже если неразрывные части контента вылезут за край) сохраняется только
    при указании трех ограничительных размеров (свойства width,
    min-width, max-width)
    в абсолютных единицах, в то время как использование относительного размера, скажем 20%, не гарантирует
    удержание ширины на неразрывной части контента, так как неявно позволяет браузеру автоподстройку ширины
    колонки в заём избыточного пространства соседних колонок с относительным или
    width: auto размером.

Живое демо



imperacms.ru/examples/css-div-cells/index.html
— эта демонстрационная страница сделана на основе фрагментов изложенного выше кода. Только всё (html-код и
css-правила) объединено в один HTML-файл. В дополнение колонки раскрашены разными цветами и в них добавлен
много строчный контент, чтобы сразу был понятен эффект.

Основные отличия Bootstrap-4 от Bootstrap-3

В начале 2018 года в свет вышла новая версия Bootstrap-4. Данная программа стала проще в использовании, более адаптивной, удобней для вёрстки макетов. Главные изменения наблюдаются в сетке и применении технологии FlexBox, но также присутствуют и другие нововведения. Обо всём этом читайте дальше.

Bootstrap-4 сегодняшнее состояние

Альфа-версия появилась ещё 2 года назад, а с 19 января 2018 года доступна уже бета-версия. Последний вариант программы работает стабильно, может использоваться на реальных сайтах. Однако ещё будут вводиться различные точечные изменения, так что надо следить за всеми нововведениями.

FlexBox и изменения в сетке

Самые серьёзные изменения наблюдаются в сетке, так что её надо разобрать подробно.

Параметры по умолчанию

Основные параметры сетки приведены в таблице ниже:

  Extra small Small Medium Large Extra large
Размер колонки До 576 px 576-768 px 768-992 px 992-1200 px От 1200 px
Максимальная ширина контейнера 540 720 960 1140
Название класса .col- .col-sm- .col-md- .col-lg- .col-xl-

В сетку добавлен новый размер –col-xl, который теперь заменяет значение col-lg. Таким образом, все обозначения классов переместились на один уровень ниже. Кроме того, исчезла последняя аббревиатура у класса col-xs, теперь он пишется, как просто col- с дефисом на конце.

Новый класс col

Появился класс col, который можно использовать для создания колонок одинаковой ширины:

<div>
     <div>1 из 2</div>
     <div>2 из 2</div>
</div>
<div>
     <div>1 из 3</div>
     <div>2 из 3</div>
     <div>3 из 3</div>
</div>

Также этим классом можно задавать определённую ширину, измеряемую колонками:

<div>
     <div>1 из 3</div>
     <div>2 из 3 (широкое)</div>
     <div>3 из 3</div>
</div>

Это не все возможности класса col, но их так много, что для этого надо писать отдельную статью.

FlexBox вместо Float

В прежних версиях сетка Bootstrap использовала метод Float, однако теперь она базируется на технологии FlexBox. Преимущество такого решения состоит в том, что если раньше при контенте разного объёма блоки отличались по высоте, то теперь при разной длине текста, колонки будут иметь одинаковую высоту. Из-за этого оформление портала смотрится симпатичнее.

Раньше:

Теперь:

Компонент Card

Теперь больше нет компонентов wells, thumbnails и panels. Вместо них работает гибкий элемент Card. Данный инструмент включает в себя все возможности предшественников. Благодаря ему можно создавать сетку из отдельных карточек и формировать «кирпичную кладку».

Что находится под капотом

Также существенные изменения коснулись внутреннего устройства фреймворка, из-за чего программа стала работать быстрее. Основные нововведения такие:

  1. Теперь Bootstrap-4 работает на IE10, а для IE8/IE9 нужно использовать третью версию.
  2. Bootstrap больше не работает с LESS, зато вместо него используется SASS, из-за чего программа стала функционировать быстрее.
  3. Для поддержки кроссбраузерности функционирует «Reboot», работающий на ядре «Normalize.css».
  4. Изменились и другие компоненты, а также плагины jQuery и прочие скрипты.

Другие изменения

Нововведений в Bootstrap-4 очень много, но наиболее важные из них следующие:

1. Увеличилось количество базовых цветов с 6 до 8 штук.

2. Разработчики отказались от пикселей в пользу em и rem.
3. Глобальный шрифт сменился с 14px на 16px.
4. Фреймворк отказался от иконочного шрифта Glypicons, так что теперь придётся использовать SVG.

Подведём итоги

Новый Bootstrap-4 теперь комфортный в использовании и адаптивный. Основные нововведения коснулись сетки, а также произошла замена FlexBox на Float. Кроме того, особое внимание нужно уделить классу col или card. Также есть множество изменений «под капотом».

5 предыдущих статей

DIV-ные колонки одинаковой высоты на CSS

По роду занятий, сталкиваясь с потребностями начинающих
вебмастеров сверстать каркас страницы
интернет магазина
строго по прихотям заказчика, приходится время от времени
подсказывать какие-то мелочи и помогать в нахождении
лёгких решений нетипичных задач.

Одна из таких — используя только обожаемую заказчиком DIV-ную
вёрстку и вообще не привлекая JavaScript, дать колонкам сайта
автоматическое выравнивание высоты по наиболее заполненной
колонке, подобно тому как это происходило бы в нелюбимой
табличной вёрстке.

Ниже предлагаю элементарное решение на основе всего двух
объявлений в стилях сайта и одного обёрточного контейнера
в теле страницы. Решение валидно для множества браузеров,
кроме IE6-IE7, и при удалении одного свойства из стилей,
привнесённых этим решением, может быть преобразовано под
браузеры без поддержки CSS3.

Объяснение решения

Предположим, есть следующая разметка: шапка, три колонки
(левая, центральная, правая) и подвал страницы.

<!DOCTYPE HTML>
<html>
 <head>
  <meta charset="utf-8">
  <title>Колонки</title>
 </head>
 <body>
  <div></div>

  <div></div>
  <div></div>
  <div></div>

  <div></div>
 </body>
</html>

Первым делом оборачиваем будущие колонки в DIV-контейнер.
Например, назначим ему идентификатор
columns.

<!DOCTYPE HTML>
<html>
 <head>
  <meta charset="utf-8">
  <title>Колонки</title>
 </head>
 <body>
   <div></div>

   <div>
     <div></div>
     <div></div>
     <div></div>
   </div>

  <div></div>
 </body>
</html>

Осталось прописать в стили сайта следующее:

#columns {
    display: table;
    width: 100%;
    box-sizing: border-box;  /* не поддерживается в CSS2 */
    margin-left: 0;
    margin-right: 0;
}

#columns > div,
#columns > noindex > div {
    display: table-cell;
    vertical-align: top;
    width: auto;
    box-sizing: border-box;  /* не поддерживается в CSS2 */
}

Здесь мы указали браузеру, что требуем обёрточный
контейнер показывать как блочную таблицу на всю ширину
родителя, причём для исключения непредвиденных искажений
размеры таблицы просим рассматривать по её границам
(плюс неучитываемые margin-отступы
с боков погашаем намеренно, иначе размер исказится).
А вложенные в эту обёртку первородные DIV-ы призываем
показывать как ячейки таблицы с подстраиваемой шириной
(подстройку высоты браузер делает сам) и таким же
рассмотрением размеров ячеек по их границам, а не по
границам содержащегося в них контента.

В CSS2 не поддерживается свойство box-sizing, поэтому
для старых браузеров, в случае необходимости указать
размеры ячеек, делать это нужно за вычетом значений
border- и
padding-отступов.

Теперь если бы мы, например, захотели боковые колонки
сделать фиксированного размера, то в стилях просто
нужно прописать желаемые ограничительные размеры
колонок. Допустим, желаем левую колонку — 300 пикселей,
а правую — 200 пикселей и вдобавок с отсечением невольно
выступивших за край частей её содержимого.

#columns > #left,
#columns > noindex > #left {
    max-width: 300px;
    min-width: 300px;
    width: 300px;
}

#columns > #right,
#columns > noindex > #right {
    max-width: 200px;
    min-width: 200px;
    width: 200px;
    overflow: hidden;
}

Такое указание родства объектов, как
использовано в продемонстрированном примере, необходимо
для гарантии срабатывания стилевых правил лишь на
конкретные колонки, принадлежащие непосредственно
обёртке. А добавочное причисление случая с тегом noindex служит цели
отработать ситуацию, когда СЕОшник сайта решил
отдельную колонку закрыть от индексирования поисковыми
серверами (нынче в строении интернет-магазинов это
бывает принципиальной деталью).

Явные достоинства

  • простая реализация;
  • гарантированная одинаковая высота колонок;
  • колонки легко переставляются местами при необходимости;
  • легко добавить дополнительные колонки или изъять лишние;
  • колонки запросто скрываются от индексирования оборачиванием в тег noindex;
  • это не float-решение, поэтому отсутствует дефект
    «соскакивание колонки на новую строку».

Недостатки

  • не работает в браузерах IE6, IE7 — они изначально не
    поддерживают свойство display: table
    в стилях;
  • в браузере Safari 3.1 требуется удвоенная обёртка DIV-ами —
    здесь свойство display: table-cell
    дочернего объекта первого родства работает при наличии
    пары родительских контейнеров, вложенных один в другой
    со свойствами display: table
    и display: table-row;
  • нельзя использовать боковые margin-отступы
    у обёрточного DIV-а, если одновременно задаём ему ширину не
    в форме width: auto, потому
    что при рассмотрении размеров объекта браузер не принимает
    во внимание размеры margin-отступов,
    следовательно правый край объекта «уедет» дальше положенного
    на величину неучтённого отступа;
  • у колонок не получится задать
    margin-отступы,
    потому что браузер игнорирует всяческую манипуляцию
    такими отступами в объектах со свойством
    display: table-cell;
  • строго неподвижная фиксация ширины колонок вне зависимости
    от ширины их содержимого (то есть когда край колонки не
    сместится, даже если неразрывные части контента вылезут за край)
    сохраняется только при указании трёх ограничительных
    размеров (свойства width,
    min-width,
    max-width) в абсолютных
    единицах, в то время как использование относительного
    размера, скажем 20%, не гарантирует удержание ширины на
    неразрывной части контента, так как неявно позволяет
    браузеру автоподстройку ширины колонки в заём избыточного
    пространства соседних колонок с относительным или
    width: auto размером.

html — Как сделать столбцы Bootstrap 4 одинаковой высоты?

html — Как сделать столбцы Bootstrap 4 одинаковой высоты? — Переполнение стека

Спросил

Просмотрено
146k раз

На этот вопрос уже есть ответы здесь :

Закрыт 4 года назад.

Заявление об отказе от ответственности. Раньше этот вопрос задавали много раз. Но с тех пор, как прошло время, и теперь мы близки к выпуску Bootstrap 4 с полной поддержкой flexbox, пришло время для новых ответов на тот же вопрос.

Я хочу создать столбцы одинаковой высоты с помощью Bootstrap 4. Вот демонстрация предполагаемого результата:

Мне нужно решение, которое работает во всех браузерах, поддерживаемых Bootstrap 4. Лучше, если не будет задействован JS. Некоторые из существующих решений основаны на Bootstrap 3, некоторые не работают в Safari на MacOS.

Обновление. Похоже, я неправильно исследовал. Bootstrap 4 по умолчанию поставляется с одинаковой высотой. Я добавил обновленное изображение с иллюстрацией. Вам не нужно ничего делать, это уже есть.

Создан 02 мар.

Дандакадандака

81922 золотых знака77 серебряных знаков1818 бронзовых знаков

6

Столбцы одинаковой высоты — это поведение по умолчанию для сеток Bootstrap 4.

  .col {фон: красный; }
.col: nth-child (нечетный) {фон: желтый; }  
  

1 из 3
1 из 3
Строка 2
Строка 3
1 из 3

Создан 02 мар.

КвентинКвентин

823k111111 золотых знаков11051105 серебряных знаков12311231 бронзовый знак

2

Вы можете использовать новые карты Bootstrap:

  
      
Название карточки

Это более широкая карточка с вспомогательным текстом ниже, который естественным образом ведет к дополнительному содержанию. Этот контент немного длиннее.

Последнее обновление 3 мин. назад
 Крышка изображения карточки
Название карточки

Под этой карточкой есть вспомогательный текст, который естественным образом ведет к дополнительному содержанию.

Последнее обновление 3 мин. назад
Заголовок изображения карточки
Название карточки

Это более широкая карточка с вспомогательным текстом ниже, который естественным образом ведет к дополнительному содержанию.Содержание этой карточки даже больше, чем у первой, чтобы показать действие одинаковой высоты.

Последнее обновление 3 мин. назад

Ссылка: Нажмите здесь

с уважением,

Создан 02 мар.

Серж Инасио

1,99299 серебряных знаков2020 бронзовых знаков

0

lang-html

Stack Overflow лучше всего работает с включенным JavaScript

Ваша конфиденциальность

Нажимая «Принять все файлы cookie», вы соглашаетесь с тем, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в ​​отношении файлов cookie.

Принимать все файлы cookie

Настроить параметры

Как сделать столбцы Bootstrap одинаковой высоты?

Решение 4 с использованием Bootstrap 4

Bootstrap 4 использует Flexbox, поэтому нет необходимости в дополнительном CSS.

Демо

  
некоторый контент
кошачий
еще немного контента

Решение 1 с использованием отрицательных полей (не нарушает отзывчивость)

Демо

  .row {
    переполнение: скрыто;
}

[class * = "col -"] {
    нижнее поле: -99999 пикселей;
    padding-bottom: 99999 пикселей;
}
  

Решение 2 с использованием таблицы

Демо

 .ряд {
    дисплей: таблица;
}

[class * = "col-"] {
    float: нет;
    дисплей: таблица-ячейка;
    вертикальное выравнивание: сверху;
}
  

Решение 3 с использованием flex добавлено в августе 2015 г. Комментарии, опубликованные до этого, не относятся к этому решению.

Демо

  .row {
  дисплей: -webkit-box;
  дисплей: -webkit-flex;
  дисплей: -ms-flexbox;
  дисплей: гибкий;
  flex-wrap: обертка;
}
.row> [class * = 'col-'] {
  дисплей: гибкий;
  flex-direction: столбец;
}
  

Обновление 2020

Лучший подход для Bootstap 3.x - с использованием CSS flexbox (и требует минимального CSS).

  .equal {
  дисплей: гибкий;
  дисплей: -webkit-flex;
  flex-wrap: обертка;
}
  

Bootstrap Пример Flexbox одинаковой высоты

Чтобы применить гибкий блок с одинаковой высотой только к определенным точкам останова (отзывчивый), используйте медиа-запрос. Например, вот см (768px) и выше:

  @media (min-width: 768px) {
  .row.equal {
    дисплей: гибкий;
    flex-wrap: обертка;
  }
}
  

Это решение также хорошо работает для нескольких строк (перенос столбцов):
https: // www.bootply.com/gCEXzPMehZ

Другие обходные пути

Эти параметры будут рекомендованы другими, но - не лучшая идея. для адаптивного дизайна. Они работают только для простых однострочных макетов без переноса столбцов.

1) Использование огромных отрицательных полей и отступов

2) Использование отображения : таблица-ячейка (это решение также влияет на адаптивную сетку, поэтому запрос @media может использоваться только для применения отображения table на более широких экранах до вертикального стека столбцов)


Бутстрап 4

Flexbox теперь используется по умолчанию в Bootstrap 4, поэтому нет необходимости в дополнительном CSS для создания столбцов одинаковой высоты: http: // www.codeply.com/go/IJYRI4LPwU

Пример:

  

Не требуется JavaScript. Просто добавьте класс .row-eq-height к существующему .row , вот так:

  
некоторый контент
котенок
еще немного контента

Совет: если у вас более 12 столбцов в строке, сетка начальной загрузки не сможет обернуть ее.Итак, добавьте новый div.row.row-eq-height каждые 12 столбцов.

Совет: вам может понадобиться добавить

  
  

на ваш html

Как создать столбцы одинаковой высоты


Узнайте, как создавать столбцы одинаковой высоты с помощью CSS.


Как создать столбцы одинаковой высоты

Если у вас есть столбцы, которые должны отображаться рядом, вам часто нужно, чтобы они были одинаковой высоты (совпадающие с высотой самого высокого).

Попробуйте сами »


Шаг 1) Добавьте HTML:

Пример

Столбец 1
Hello World

Столбец 2

Привет, мир!

Привет, мир!

Hello World!

Hello World!

Столбец 3

Другой текст..

Другой текст ..