В библиотеке Packery термин gutter обозначает промежуток между элементами сетки. Этот параметр критически важен для управления визуальной структурой макета, особенно когда требуется равномерное распределение карточек или блоков, независимо от их размеров.
Параметр gutter передается при инициализации Packery и может задаваться как в пикселях, так и через CSS-переменные, если используется динамическая стилизация.
var grid = document.querySelector('.grid');
var pckry = new Packery(grid, {
itemSelector: '.grid-item',
gutter: 10
});
В этом примере создается отступ в 10 пикселей между всеми элементами сетки. Packery автоматически учитывает этот отступ при вычислении положения каждого элемента.
margin. Packery работает с
gutter независимо от внешних стилей, поэтому для корректного
позиционирования желательно использовать либо gutter, либо
внешние отступы, но не сочетать их без расчета.Packery позволяет изменять gutter после инициализации, что особенно полезно при изменении дизайна на лету или при адаптивных макетах:
pckry.options.gutter = 20;
pckry.layout();
Метод layout() пересчитывает позиции элементов с новым
отступом. Это гарантирует, что визуальная структура останется аккуратной
и сбалансированной.
layout() после полной
загрузки контента, иначе отступы могут быть неправильно рассчитаны.imagesLoaded(grid, function() {
pckry.layout();
});
var gutterSize = grid.offsetWidth * 0.02; // 2% от ширины контейнера
var pckry = new Packery(grid, {
itemSelector: '.grid-item',
gutter: gutterSize
});
appended и layout() для
поддержания равномерного распределения с учетом gutter.var newItem = document.createElement('div');
newItem.className = 'grid-item';
grid.appendChild(newItem);
pckry.appended(newItem);
pckry.layout();
Использование gutter в Packery обеспечивает точный контроль над расстоянием между элементами и создает аккуратный, сбалансированный макет, адаптирующийся к изменениям размеров контейнера и содержимого.