В Gridstack.js размеры сетки задаются через параметры конфигурации, которые определяют количество колонок, высоту рядов, отступы между элементами и общую ширину контейнера. Основные свойства для управления размерами сетки:
column — количество колонок в сетке. По умолчанию 12,
но может быть изменено под нужды макета.cellHeight — высота ячейки в пикселях. Может быть
числом или функцией, возвращающей число.verticalMargin — вертикальный отступ между элементами,
задается в пикселях.margin — общий отступ между элементами, можно задавать
массивом [горизонтальный, вертикальный].width — ширина сетки. По умолчанию сетка адаптивна и
занимает всю ширину контейнера, но можно задать фиксированное
значение.Пример конфигурации:
const grid = GridStack.init({
column: 6,
cellHeight: 80,
margin: 10,
width: 600
});
Колонки в Gridstack.js задают структуру сетки по горизонтали. Ключевые моменты:
Изменение количества колонок: позволяет создавать макеты с разной плотностью элементов.
grid.column(8); // обновление количества колонок на 8Динамическое изменение ширины колонок: ширина колонки автоматически подстраивается под контейнер, если не задана фиксированная ширина.
Отзывчивость: количество колонок можно менять
при изменении ширины окна, используя параметры breakpoints
и column для разных разрешений.
Каждый элемент сетки определяется по ширине (w) и высоте (h) в ячейках. Пример определения размеров элемента:
<div class="grid-stack-item" gs-w="2" gs-h="3">
<div class="grid-stack-item-content">Элемент</div>
</div>
gs-w — количество колонок, занимаемых элементом.gs-h — количество рядов по высоте.Изменение высоты через Jav * aScript:
const item = grid.getGridItems()[0];
grid.update(item, {w: 3, h: 4});
Gridstack.js поддерживает адаптивность за счет breakpoints. Это позволяет менять количество колонок для разных размеров экрана:
const grid = GridStack.init({
column: 12,
breakpoints: {
1200: 12,
992: 8,
768: 6,
576: 4
}
});
Вертикальные и горизонтальные промежутки задаются через
margin или verticalMargin:
GridStack.init({
column: 6,
cellHeight: 100,
margin: [20, 15] // [горизонтальный, вертикальный]
});
Gridstack.js предоставляет методы для работы с размерами сетки и элементов:
grid.cellHeight() — возвращает текущую высоту ячейки
или устанавливает новую.grid.column() — возвращает текущее количество колонок
или обновляет их.grid.update(item, {w, h}) — изменяет размер конкретного
элемента.grid.compact() — уплотняет сетку после изменения
размеров, убирая пустое пространство.Для более гибких макетов можно использовать относительные размеры:
GridStack.init({
column: 12,
cellHeight: '10vh', // высота ячейки как 10% высоты окна
});
Помимо стандартного задания размеров в ячейках, Gridstack.js позволяет задавать фиксированные размеры через CSS:
.grid-stack-item-content {
width: 150px;
height: 200px;
}
Комбинация настроек колонок, высоты, отступов и адаптивности позволяет создавать гибкие и динамичные макеты:
Правильная настройка размеров сетки и элементов является фундаментом для создания удобных интерфейсов с Gridstack.js, позволяя балансировать между гибкостью макета и визуальной гармонией.