Element Plus предоставляет гибкую систему сеток,
основанную на принципах flexbox, которая позволяет
создавать адаптивные и отзывчивые интерфейсы. Основные элементы сетки —
это <el-row> и <el-col>, где
row задаёт строку, а col — колонку
внутри строки.
<el-row :gutter="20">
<el-col :span="8">Колонка 1</el-col>
<el-col :span="8">Колонка 2</el-col>
<el-col :span="8">Колонка 3</el-col>
</el-row>
Ключевые моменты:
:gutter — задаёт отступы между
колонками. Может быть числом (в пикселях) или массивом
[горизонтальный, вертикальный].:span — количество колонок из 24, которые занимает
<el-col>.Element Plus поддерживает адаптивное распределение колонок для разных разрешений экрана. Система использует стандартные брейкпоинты:
| Брейкпоинт | Минимальная ширина |
|---|---|
| xs | < 576px |
| sm | ≥ 576px |
| md | ≥ 768px |
| lg | ≥ 992px |
| xl | ≥ 1200px |
| xxl | ≥ 1600px |
Каждой колонке можно задать индивидуальные значения span и offset для разных экранов:
<el-row :gutter="20">
<el-col :xs="24" :sm="12" :md="8" :lg="6">Колонка</el-col>
</el-row>
Особенности:
:xs="24" — на маленьких экранах колонка займёт всю
ширину.:sm="12" — на экранах ≥576px колонка займёт половину
ширины.:md="8" — на экранах ≥768px колонка займёт треть ширины
(24/8 = 3 колонки).:lg="6" — на больших экранах колонка займёт четверть
ширины.Для сдвига колонок используются свойства:
:offset — сдвиг вправо на указанное количество
колонок.:push — перемещение колонки вправо.:pull — перемещение колонки влево.Пример:
<el-row :gutter="20">
<el-col :span="8" :offset="4">Колонка с отступом</el-col>
</el-row>
Это позволяет создавать асимметричные макеты, смещая колонки без необходимости вставлять пустые элементы.
Сетки можно вкладывать друг в друга, что особенно
полезно при сложных интерфейсах. Вложенная колонка создаёт свою
собственную строку с внутренним gutter.
<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">Внешняя колонка</el-col>
</el-row>
Элементы <el-row> поддерживают
выравнивание по горизонтали и вертикали с помощью
атрибутов justify и align.
Примеры значений justify:
start — по левому краюcenter — по центруend — по правому краюspace-between — равное распределение с
промежуткамиspace-around — равные промежутки вокруг колонокПримеры значений align:
top — выравнивание по верхнему краюmiddle — по центру по вертикалиbottom — по нижнему краю<el-row :gutter="20" justify="center" align="middle">
<el-col :span="6">Центрированная колонка</el-col>
</el-row>
gutter можно задавать динамически через объект
для разных экранов:
<el-row :gutter="{ xs: 8, sm: 16, md: 24, lg: 32 }">
<el-col :span="6">Колонка 1</el-col>
<el-col :span="6">Колонка 2</el-col>
</el-row>
Таким образом, интерфейс остаётся аккуратным на любых устройствах.
С помощью классов CSS и свойств колонок можно управлять видимостью элементов на разных устройствах:
<el-col :xs="24" :sm="12" :md="8" v-show="isVisibleOnMedium">
Колонка, видимая только на md+
</el-col>
В сочетании с динамическими span и offset
это даёт полный контроль над макетом для любых
разрешений.
Эти возможности Element Plus делают систему сеток мощным инструментом для создания гибких, отзывчивых интерфейсов, поддерживающих сложные макеты и различные устройства без лишнего CSS.