Компонент ElSpace в библиотеке Element
Plus используется для управления расстоянием между элементами
интерфейса. Он позволяет создавать аккуратные, равномерно распределённые
отступы без необходимости вручную прописывать стили margin
или padding для каждого элемента.
<template>
<el-space>
<el-button>Кнопка 1</el-button>
<el-button>Кнопка 2</el-button>
<el-button>Кнопка 3</el-button>
</el-space>
</template>
По умолчанию ElSpace располагает элементы горизонтально
и с небольшим отступом между ними.
direction – задаёт направление
размещения элементов:
horizontal (по умолчанию) – элементы располагаются в
строку.vertical – элементы располагаются в колонку.<el-space direction="vertical">
<el-button>Кнопка 1</el-button>
<el-button>Кнопка 2</el-button>
</el-space>
size – размер отступа между
элементами. Может быть числом (пиксели) или строкой:
small, medium, large<el-space size="large">
<el-button>Кнопка 1</el-button>
<el-button>Кнопка 2</el-button>
</el-space>
wrap – включение переноса элементов на
новую строку при недостатке места (по умолчанию
false):<el-space wrap>
<el-button v-for="i in 10" :key="i">Кнопка {{ i }}</el-button>
</el-space>
fill – позволяет элементам занимать
доступное пространство равномерно:<el-space fill>
<el-button>Кнопка 1</el-button>
<el-button>Кнопка 2</el-button>
</el-space>
align – выравнивание элементов по
вертикали:
start, center, end,
baseline<el-space align="center">
<el-button>Короткая</el-button>
<el-button>Очень длинная кнопка</el-button>
</el-space>
ElSpace прекрасно работает с v-for и
динамическим содержимым, автоматически применяя отступы ко всем дочерним
элементам:
<el-space size="medium">
<el-button v-for="item in items" :key="item.id">{{ item.label }}</el-button>
</el-space>
<script>
export default {
data() {
return {
items: [
{ id: 1, label: 'Кнопка A' },
{ id: 2, label: 'Кнопка B' },
{ id: 3, label: 'Кнопка C' }
]
};
}
};
</script>
ElSpace может использоваться для управления расстоянием
между любыми элементами: кнопками, иконками, формами, карточками,
таблицами.
<el-space direction="vertical" size="large">
<el-input placeholder="Введите текст"></el-input>
<el-button type="primary">Отправить</el-button>
<el-card>
Содержимое карточки
</el-card>
</el-space>
Можно использовать вложенные ElSpace для сложного
расположения элементов:
<el-space direction="vertical" size="medium">
<el-space size="small">
<el-button>1</el-button>
<el-button>2</el-button>
</el-space>
<el-space size="small">
<el-button>3</el-button>
<el-button>4</el-button>
</el-space>
</el-space>
Такой подход позволяет создавать сетки кнопок, форм и других компонентов без сложного CSS.
Используя wrap и fill, ElSpace
позволяет создавать адаптивные интерфейсы, которые корректно
подстраиваются под размеры окна. При этом сохраняется равномерный отступ
и аккуратное визуальное представление.
<el-space wrap fill size="medium">
<el-button v-for="i in 8" :key="i">Кнопка {{ i }}</el-button>
</el-space>
ElSpace не создаёт контейнер для абсолютного
позиционирования элементов.display: block с полной шириной, его
отступы могут вести себя иначе.fill или вложенные пространства.Компонент ElSpace является гибким инструментом для
упрощения верстки интерфейсов, позволяя управлять отступами и
выравниванием элементов без прямого использования CSS. Использование
всех пропсов (direction, size,
wrap, fill, align) обеспечивает
полную адаптивность и структурированность интерфейсов в Element
Plus.