Задать вопрос

Как рассчитать высоты строк?

Добрый вечер!

E2p4vyxH9Rv0P2.jpg

Есть вот такой макет. В верстке разбит он по колонкам (характеристики | товар | товар | товар | товар)

Подскажите плиз как на js перебрать построчно характеристики и задать высоту по наибольшей ячейки
  • Вопрос задан
  • 510 просмотров
Подписаться 1 Средний 4 комментария
Пригласить эксперта
Ответы на вопрос 3
Anadi
@Anadi
Если ответ Вам помог мой, решением отметье его!
С jquery как то так.

var isLineHeight = 0;

$('div.line').each(function(){
     if ($(this).height() > isLineHeight ) { 
          isLineHeight = $(this).height(); 
     }
});

$('div.line').height(isLineHeight );


UPD

Для каждой новой строки которую надо подогнать по высоте лучше присвоить индекс, например line-1, line-2 и т.д.
Ответ написан
dimovich85
@dimovich85 Куратор тега JavaScript
https://u-academy.net/
Убиваете семантику и ограничиваете конечных пользователей в возможностях, которые дают таблицы, делаете интерфейс сложнее в доступе для лиц с ограниченными возможностями и усложняете себе жизнь.
Рекомендую пообщаться с теми, кто ставит задачи и предложить все же таблицу сделать таблицей.
Если все же вопрос стоит сделать так, как в вопросе, то берете родителя, проходитесь циклом по детям, берете высоту каждого ребенка и сравниваете с предыдущим, из двух чисел берете наибольшее и в конце получив макс число задаете его. Еще, флексбокс, по умолчанию, растягивает в строке блоки по высоте максимального, то есть задав дисплей флекс сразу получаете одним свойством все плюшки.

Если интересно, чем таблица хороша, то во-первых она сама растянет строку по макс высоте, раз. Если таблицу выделить и скопировать, то потом можно ее вставить в excell, word, google sheets и куда угодно и вставится именно таблица, а непонятного вида текст, два. Экранные читалки когда видят таблицу помогают ее читать, table, tr, td помогают прочитать и навигировать по таблице не теряя смысл, три.
Ответ написан
Комментировать
@SOjuD
js тут и даром не нужен, вы пытаетесь из пушки по воробьям стрелять, используйте для контейнера display: flex; align-items: stretch; и будет вам счастье
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы