Element Plus предоставляет мощные инструменты для гибкого и точного
выравнивания элементов на странице с использованием
систем сеток, утилит для флексбокса и встроенных компонентов, таких как
ElRow и ElCol. Эти механизмы позволяют
создавать интерфейсы с адаптивной и аккуратной компоновкой, не прибегая
к громоздким CSS-классам.
ElRow и
ElColКомпоненты ElRow и ElCol реализуют
систему сетки, где ElRow служит
контейнером для строк, а ElCol — для колонок внутри строки.
Ключевые свойства для выравнивания:
Пример горизонтального выравнивания:
<el-row justify="center">
<el-col :span="6">Колонка 1</el-col>
<el-col :span="6">Колонка 2</el-col>
</el-row>
justify="start" — выравнивание слева.justify="end" — выравнивание справа.justify="center" — по центру.justify="space-between" — равномерное распределение с
промежутком между элементами.justify="space-around" — равномерное распределение с
одинаковым пространством вокруг элементов.Пример вертикального выравнивания:
<el-row align="middle" style="height: 200px;">
<el-col :span="8">Колонка 1</el-col>
<el-col :span="8">Колонка 2</el-col>
</el-row>
align="top" — выравнивание по верхнему краю.align="middle" — по центру строки.align="bottom" — по нижнему краю.Element Plus использует Flexbox внутри компонентов
ElRow, что позволяет применять свойства CSS напрямую для
более сложного выравнивания:
row, column.nowrap, wrap.Пример вертикальной колонки с центрированием:
<el-row type="flex" justify="center" align="middle" style="height: 300px; flex-direction: column;">
<el-col :span="12">Элемент 1</el-col>
<el-col :span="12">Элемент 2</el-col>
</el-row>
ElColДля вложенных элементов внутри колонки можно использовать стандартные CSS-классы и стили:
<el-col :span="8">
<div style="display: flex; justify-content: flex-end; align-items: center; height: 100px;">
Вложенный контент
</div>
</el-col>
Ключевые методы выравнивания:
justify-content — определяет горизонтальное
расположение вложенного контента.align-items — вертикальное выравнивание.align-self — выравнивание отдельного элемента внутри
flex-контейнера.Часто требуется точное центрирование блока как по
горизонтали, так и по вертикали. Для этого используют комбинацию
ElRow с флексом:
<el-row type="flex" justify="center" align="middle" style="height: 400px;">
<el-col :span="6">
Центрированный блок
</el-col>
</el-row>
Для абсолютного центрирования внутри ElCol:
<el-col :span="6" style="position: relative; height: 200px;">
<div style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">
Абсолютно центрированный
</div>
</el-col>
gutter)Свойство gutter в ElRow управляет
промежутком между колонками, что позволяет аккуратно выравнивать
элементы без ручного задания margin:
<el-row :gutter="20">
<el-col :span="6">Колонка 1</el-col>
<el-col :span="6">Колонка 2</el-col>
<el-col :span="6">Колонка 3</el-col>
</el-row>
gutter указывается в пикселях.ElCol автоматически добавляет padding с двух сторон для
равномерного распределения пространства.Element Plus поддерживает адаптивную сетку, позволяя задавать разные выравнивания и ширину колонок для различных размеров экранов:
<el-row justify="center">
<el-col :xs="24" :sm="12" :md="8" :lg="6">
Адаптивная колонка
</el-col>
</el-row>
xs — экраны < 576pxsm — экраны ≥ 576pxmd — экраны ≥ 768pxlg — экраны ≥ 992pxxl — экраны ≥ 1200pxxxl — экраны ≥ 1600pxТаким образом, можно динамически менять размер, расположение и выравнивание колонок в зависимости от устройства пользователя.
Комбинирование встроенной сетки Element Plus и гибких CSS-свойств позволяет создавать сложные макеты без дублирования кода:
<el-row type="flex" justify="space-between" align="middle">
<el-col :span="4">
<div style="text-align: center;">Блок 1</div>
</el-col>
<el-col :span="4">
<div style="display: flex; justify-content: flex-end;">Блок 2</div>
</el-col>
</el-row>
Такой подход обеспечивает максимальную управляемость и предсказуемость при работе с элементами интерфейса, сочетая мощь сетки и точность flex-выравнивания.
Хотя Element Plus предоставляет базовые механизмы для выравнивания
через ElRow и ElCol, сочетание их с CSS
Flexbox и адаптивными свойствами позволяет реализовать практически любые
макеты, от простых горизонтальных меню до сложных многоуровневых
панелей.