Свойство columnWidth является одним из ключевых
параметров при организации сетки элементов в Isotope. Оно определяет
ширину колонок в сетке и напрямую влияет на расположение элементов, их
выравнивание и общий визуальный ритм страницы.
columnWidthЧисловое значение Указывается в пикселях. Например:
columnWidth: 200
В этом случае каждая колонка будет иметь фиксированную ширину 200px. Элементы будут размещаться в сетке с учётом этой величины, а Isotope автоматически вычислит, сколько колонок помещается в контейнер.
CSS-селектор Можно указать селектор элемента, ширина которого будет использоваться в качестве базовой ширины колонки:
columnWidth: '.grid-sizer'
В этом случае Isotope измеряет ширину первого элемента, соответствующего селектору, и использует её как шаблон для всех колонок. Это особенно удобно для адаптивных сеток, когда ширина элементов задаётся через CSS.
Строковое значение ‘auto’
Автоматический режим вычисляет ширину колонок исходя из размеров
контейнера и количества элементов, минимизируя пустое пространство.
Такой режим подходит для динамических сеток с элементами разного
размера.
percentPosition Если используется
процентное позиционирование (percentPosition: true), ширина
колонок, заданная через columnWidth, интерпретируется как
процент от ширины контейнера. Это позволяет создавать полностью
адаптивные сетки без необходимости прописывать фиксированные
пиксели.
gutter Расстояние между колонками
можно контролировать отдельно с помощью свойства gutter.
Оно работает совместно с columnWidth и позволяет точно
настроить интервал между элементами:
columnWidth: 200,
gutter: 10
В этом примере каждая колонка будет шириной 200px с 10px промежутком между соседними колонками.
Элементы разной ширины (masonry
layout) В режиме masonry колонка с фиксированной
шириной позволяет Isotope корректно располагать элементы разной высоты,
создавая плотную сетку без пустых промежутков. Если ширина колонок
изменяется динамически, сетка автоматически перестраивается.
Для сеток с одинаковыми элементами лучше использовать числовое значение или фиксированный CSS-селектор. Это повышает производительность, так как Isotope не тратит ресурсы на повторное измерение ширины элементов.
Для адаптивных сеток с изменяющейся шириной контейнера
рекомендуется использовать селектор и
percentPosition: true. Например:
var $grid = $('.grid').isotope({
itemSelector: '.grid-item',
columnWidth: '.grid-sizer',
percentPosition: true
});
Такой подход позволяет колонкам гибко менять размер при изменении ширины окна браузера.
Необходимо учитывать padding и margin элементов. Если ширина
элемента включает padding, Isotope корректно учитывает это при расчётах
колонок, однако дополнительные внешние отступы могут создавать
визуальные рассогласования, если их не учитывать при выборе
gutter.
.grid-sizerЧасто практикуется использование скрытого элемента-сайдера
.grid-sizer для точного контроля ширины колонок:
<div class="grid">
<div class="grid-sizer"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
...
</div>
.grid-sizer {
width: 25%; /* четверть ширины контейнера */
}
В этом примере Isotope использует ширину .grid-sizer как
базовую для всех колонок, что обеспечивает ровные пропорции и
предсказуемую адаптацию сетки на разных устройствах.
columnWidthIsotope позволяет изменять ширину колонок после инициализации сетки с
помощью метода layout:
$grid.isotope({
columnWidth: 150
});
$grid.isotope('layout');
После изменения columnWidth метод layout
перерассчитает расположение всех элементов в контейнере, сохраняя
согласованность сетки. Это полезно при адаптивной подстройке сетки к
пользовательским изменениям интерфейса, например, при смене режима
просмотра или при ресайзе окна.
columnWidth определяет базовую ширину колонок и
является основным инструментом контроля сетки.gutter и
percentPosition позволяет создавать сложные и гибкие сетки
с минимальными усилиями.Правильная настройка columnWidth обеспечивает визуально
аккуратную, оптимизированную и динамически подстраивающуюся сетку
элементов в Isotope.