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

Самый простой способ сделать блоки с одинаковой высотой можно с помощью JQuery, к примеру возьмем следующую верстку блоков:

<div class="list">
	<div class="list-item">Block #1</div>
	<div class="list-item">Block #2</div>
	<div class="list-item">Block #3</div>
	<div class="list-item">Block #4</div>
	<div class="list-item">Block #5</div>
	<div class="list-item">Block #6</div>
</div>
HTML
Элементы имеют фиксированную ширину и обтекание с справа (float: left):
.list {
	margin: 0 -20px 0 0;
	overflow: hidden;
}
.list-item {
	width: 296px;
	float: left;
	margin: 0 20px 20px 0;
	border: 3px solid orange;
	padding: 15px 20px;
}
CSS

Из-за разной высоты блоков получается следующий результат:

Данную проблему можно исправить, выставив всем элементам высоту следующими способами:

1

В данном примере поиск элементов, которым нужно задать одинаковую высоту происходит по родителю.

$(function(){	
	$('.list').each(function(){
		var column = 0;
		$(this).children().each(function(){
			h = $(this).height();
			if (h > column) {
				column = h;
			}
		});
		$(this).children().height(column);
	});
});
JS

Результат:

2
$(function(){	
	var column = 0;
	$('.list .list-item').each(function(){
		h = $(this).height();
		if (h > column) {
			column = h;
		}
	}).height(column);
});
JS

Результат:

3

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

<div class="list">
	<div class="list-row">
		<div class="list-item">Block #1</div>
		<div class="list-item">Block #2</div>
	</div>
	<div class="list-row">
		<div class="list-item">Block #3</div>
		<div class="list-item">Block #4</div>
	</div>
	<div class="list-row">
		<div class="list-item">Block #5</div>
		<div class="list-item">Block #6</div>
	</div>
</div>
HTML
$(function(){	
	$('.list-row').each(function(){
		var column = 0;
		$(this).children().each(function(){
			h = $(this).height();
			if (h > column) {
				column = h;
			}
		});
		$(this).children().height(column);
	});
});
JS

Результат:

27.05.2021, обновлено 07.09.2022
8634

Комментарии

, чтобы добавить комментарий.

Другие публикации

jQuery UI Sortable - перетаскивание элементов
Перетаскивание элементов списков, плитки и строк таблиц с помощью плагина jQuery UI Sortable и методы сохранения...
41572
+13
Одна рамка между блоками
Несколько вариантов как схлопнуть (объединить) границы у рядом стоящих блоков.
20577
+2
Пример парсинга html-страницы на phpQuery
phpQuery – это удобный HTML парсер взявший за основу селекторы, фильтры и методы jQuery, которые позволяют...
62756
+26
Работа с массивами PHP – создание, наполнение, удаление
Основные примеры работы с массивами PHP. Создание, наполнение, извлечение удаление значений.
99165
+13
Перебор ячеек таблицы jQuery
Обойти ячейки таблицы можно с помощью jQuery метода each, например следующий код выводит текст из всех ячеек в консоль.
24158
+3
Как поменять элементы местами в JQuery
Два примера, как поменять два блока местами и переместить содержимое между ними с помощью jQuery.
9295
+2