В библиотеке Element Plus для построения адаптивных и гибких интерфейсов используется система сетки, основанная на компонентах Row и Col. Она позволяет создавать макеты, где элементы корректно выравниваются как по горизонтали, так и по вертикали, обеспечивая масштабируемость под разные размеры экранов.
Row представляет собой контейнер, который управляет расположением колонок внутри себя. Основные свойства компонента:
gutter – задаёт расстояние между колонками (в пикселях или массивом для разных размеров экранов).
<el-row :gutter="20">
<el-col :span="12">Колонка 1</el-col>
<el-col :span="12">Колонка 2</el-col>
</el-row>type – определяет способ расположения колонок.
Значение 'flex' включает flex-контейнер, что позволяет
использовать дополнительные возможности выравнивания.
justify – управляет горизонтальным выравниванием
колонок при использовании type="flex". Возможные
значения:
start – по левому краю (по умолчанию)end – по правому краюcenter – по центруspace-between – равномерное распределение с крайними
колонками по краямspace-around – равномерное распределение с отступами
вокруг каждой колонкиalign – вертикальное выравнивание колонок
(только при type="flex"):
top – выравнивание по верхнему краюmiddle – выравнивание по центруbottom – выравнивание по нижнему краюПример использования flex-Row с выравниванием:
<el-row type="flex" justify="space-around" align="middle" :gutter="20">
<el-col :span="6">Колонка A</el-col>
<el-col :span="6">Колонка B</el-col>
<el-col :span="6">Колонка C</el-col>
</el-row>
Col используется для создания колонок внутри Row. Основные свойства:
:span="12" занимает половину ширины
контейнера.span,
offset и другие параметры в зависимости от ширины
устройства.Пример адаптивной колонки:
<el-row :gutter="20">
<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
Адаптивная колонка
</el-col>
</el-row>
Свойство gutter создаёт горизонтальные отступы между колонками. Можно задавать одно число для всех размеров экранов или массив для разных брейкпоинтов:
<el-row :gutter="[10, 20]">
<el-col :span="12">Колонка 1</el-col>
<el-col :span="12">Колонка 2</el-col>
</el-row>
При type="flex" Row становится
flex-контейнером. Основные возможности:
span, offset, push
и pull с flex Row позволяет создавать сложные макеты, где
колонки могут менять позицию в зависимости от контента и размеров
экрана.Для сложных макетов допускается вложенность:
<el-row :gutter="20">
<el-col :span="12">
<el-row :gutter="10">
<el-col :span="12">Вложенная 1</el-col>
<el-col :span="12">Вложенная 2</el-col>
</el-row>
</el-col>
<el-col :span="12">Колонка 2</el-col>
</el-row>
Такой подход позволяет строить многоуровневые сетки с гибкой структурой.
xs,
sm, md, lg, xl,
xxl.type="flex" с justify и
align.Система Row и Col в Element Plus обеспечивает простое и гибкое управление сеткой, делая интерфейсы адаптивными и аккуратными на всех устройствах. Она сочетает традиционную 24-единичную сетку с возможностями flex-контейнера, что позволяет реализовывать как классические, так и современные макеты.