Задать вопрос
@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);
});
  • Вопрос задан
  • 3353 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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 в одну из сторон, вложенного внутрь другого, блока, равный ширине этого блока.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽