rowHeight — это ключевой параметр библиотеки
Packery, определяющий высоту строки сетки для
выравнивания элементов по вертикали. Его правильное использование
позволяет создавать аккуратные, структурированные макеты с равномерными
промежутками между элементами, даже если размеры блоков различаются.
Свойство rowHeight поддерживает несколько типов
значений:
Число Указывается фиксированная высота строки в пикселях.
var pckry = new Packery('.grid', {
itemSelector: '.grid-item',
rowHeight: 100
});
В этом случае Packery будет ориентироваться на строки высотой 100px при размещении элементов. Все блоки будут выравниваться по сетке с шагом в 100px.
CSS-селектор строки-ориентира Вместо числа можно
указать селектор элемента, который задаёт базовую высоту строки.
Например, если внутри блока есть элемент .grid-sizer, его
высота будет использована как rowHeight:
var pckry = new Packery('.grid', {
itemSelector: '.grid-item',
rowHeight: '.grid-sizer'
});
Этот подход особенно удобен при адаптивных макетах, когда высота строк зависит от ширины или содержания блоков.
rowHeight влияет на выравнивание элементов по
вертикали, но не изменяет их фактическую высоту. Если элемент
выше, чем значение rowHeight, он занимает несколько
строк.rowHeight делает сетку более плотной,
увеличивая количество строк, в то время как увеличение — создаёт больше
пространства между блоками.columnWidthЧасто rowHeight комбинируется с параметром
columnWidth, чтобы создавать фиксированную
сетку:
var pckry = new Packery('.grid', {
itemSelector: '.grid-item',
columnWidth: 120,
rowHeight: 80,
gutter: 10
});
columnWidth задаёт ширину колонки.rowHeight задаёт высоту строки.gutter задаёт отступ между элементами.Такой подход обеспечивает строгую сетку, где каждый элемент автоматически подстраивается под ряды и колонки.
Если rowHeight задан через CSS-селектор, Packery
автоматически подстраивается под изменения размера
окна. Это делает сетку гибкой: элементы перестраиваются при
изменении ширины контейнера, сохраняя аккуратное выравнивание.
.grid-sizer {
height: 10vw; /* адаптивная высота строки */
}
var pckry = new Packery('.grid', {
itemSelector: '.grid-item',
rowHeight: '.grid-sizer'
});
Использование фиксированного числа удобно для макетов с постоянной высотой блоков.
Использование селектора предпочтительно для адаптивных сеток, где высота строки зависит от ширины экрана.
Для сложных макетов с элементами разной высоты можно
комбинировать rowHeight с stamp и
gutter, чтобы сохранить гармонию сетки.
При динамическом добавлении элементов в сетку рекомендуется
вызывать метод layout() после изменения DOM, чтобы Packery
корректно перерасчитал позиции:
pckry.appended(newElems);
pckry.layout();Правильная настройка rowHeight позволяет создавать
эффекты стаканоподобной или кирпичной кладки, где
элементы плавно «ложатся» друг на друга без зазоров. Особенно это важно
для галерей изображений и адаптивных карточек.
Packery поддерживает CSS-анимации при перестроении сетки. При
изменении rowHeight можно добиться плавного перемещения
элементов с помощью transition:
.grid-item {
transition: transform 0.4s;
}
Это позволяет визуально подчеркнуть динамическую перестройку макета при изменении размеров контейнера или добавлении новых элементов.
rowHeight — основной инструмент для вертикального
выравнивания элементов в Packery. Фиксированное значение обеспечивает
строгую сетку, а селектор CSS — гибкую адаптивную структуру. Комбинация
с columnWidth, gutter и анимацией делает макет
визуально упорядоченным, адаптивным и приятным для восприятия.