@DigitalEmotions

Как сделать div одинаковыми по высоте?

Здравствуйте! Есть интернет-магазин, где витрина с товарами имеет следующий вид:
<div class="grid">
<div></div> <!--Товар 1-->
<div></div> <!--Товар 2-->
<div></div> <!--Товар 3-->
<div></div> <!--Товар 4-->
<div></div> <!--Товар 5-->
<div></div> <!--Товар 6-->
<div></div> <!--Товар 7-->
<div></div> <!--Товар 8-->
</div>

Товары выводятся по четыре в строке., но их блоки имеют разную высоту.
Как сделать, чтобы высота столбцов подстраивалсь под высоту самого длинного блока?
Было такое решение на js, но оно конфликтовало с фильтром товаров, поэтому пришлось его отключить.
$(document).ready(function(){
  var maxH = 0;
  $("div").each(function () {
    var h_block = parseInt($(this).height());
    if(h_block > maxH) {
      maxH = h_block;
    };
  });
  $("div").height(maxH);
});
  • Вопрос задан
  • 3275 просмотров
Пригласить эксперта
Ответы на вопрос 6
Можете родителю задать display : table, а потомкам display: table-cell;
Ответ написан
Комментировать
IonDen
@IonDen
JavaScript developer. IonDen.com
Только на Flexbox (см. align items).
Но это только для современных браузеров. В старье увы только на JS или забить.
Ответ написан
Комментировать
Nordborn
@Nordborn
Frontend
Что бы сами блоки подстраивались по высоте нужен flexbox. Но если вас устроит вариант что бы выравнивались по высоте строки, а блоки были произвольного размера можно попробовать вот такой способ: https://jsfiddle.net/tvxvmdd9/1/
Ответ написан
@lynnikvadim
.grid {
display: flex;
}
яваскрипт не нужен
Ответ написан
Комментировать
Что вы городите. Какой флекс?
display: inline-block;
vertical-align: top;

и все
Ответ написан
Velimudr1
@Velimudr1
Человек
Миксим, вы читаете вопрос?
Одинаковой высоты

а vertical-align это выравнивание строки относительно базовой линии. При этом блок НЕ растянется по высоте.
Поэтому варианта два, либо flex, либо JS
П.С. Один вариант, самый старый, отрицательный margin в одну из сторон, вложенного внутрь другого, блока, равный ширине этого блока.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽