В библиотеке Element Plus для организации интерфейса используются контейнерные компоненты, которые обеспечивают структурирование страниц и управление расположением элементов. Основные компоненты для контейнеров:
<el-container> — базовый
контейнер, который может содержать дочерние компоненты
header, aside, main,
footer.<el-header> — верхняя панель
страницы, обычно используется для навигации или заголовка.<el-aside> — боковая панель для
меню, фильтров или дополнительной информации.<el-main> — центральная область,
предназначенная для основного контента.<el-footer> — нижняя панель для
подвала или информации о сайте.Все эти компоненты работают по принципу flex-контейнера, что обеспечивает гибкость при построении макета.
<template>
<el-container style="height: 100vh;">
<el-header>Header</el-header>
<el-container>
<el-aside width="200px">Sidebar</el-aside>
<el-main>Main Content</el-main>
</el-container>
<el-footer>Footer</el-footer>
</el-container>
</template>
<el-container>direction — направление контейнера
(vertical или horizontal). По умолчанию
horizontal. Используется для управления расположением
дочерних элементов.height — задаёт высоту контейнера.
Можно использовать пиксели, проценты или vh.style / class —
стандартные способы управления стилями, включая флекс-настройки и
отступы.<el-header> и
<el-footer>Оба компонента поддерживают фиксированную высоту, заданную через
height:
<el-header height="60px">Navigation Bar</el-header>
<el-footer height="50px">Footer Information</el-footer>
Особенности:
position: fixed; top: 0; width: 100%;) для постоянного
отображения.<el-aside>Боковая панель может иметь фиксированную ширину и поддерживает
адаптивное скрытие через медиазапросы или динамическое
управление v-if/v-show:
<el-aside width="250px">
<el-menu>
<el-menu-item index="1">Home</el-menu-item>
<el-menu-item index="2">About</el-menu-item>
</el-menu>
</el-aside>
width задаёт ширину панели. Может быть в пикселях или
процентах.<el-aside> используется компонент
<el-menu>.<el-main>Главная область, которая занимает оставшееся пространство контейнера. Важные моменты:
overflow: auto.<el-main style="padding: 20px; overflow-y: auto;">
<div v-for="item in items" :key="item.id">{{ item.name }}</div>
</el-main>
Element Plus позволяет создавать вложенные контейнеры, что удобно для сложных макетов:
<el-container>
<el-aside width="200px">Sidebar</el-aside>
<el-container direction="vertical">
<el-header height="60px">Top Header</el-header>
<el-main>Main Content Area</el-main>
<el-footer height="50px">Footer</el-footer>
</el-container>
</el-container>
Особенности вложенности:
direction.Для создания адаптивного интерфейса используют:
vh/vw — для гибкой ширины и
высоты.v-if,
v-show для управления видимостью контейнеров.<el-aside v-if="isDesktop" width="200px">Sidebar</el-aside>
<el-main> как гибкую
область.<el-header>, <el-footer> и
<el-aside>.horizontal / vertical).<el-container style="height: 100vh;">
<el-header height="70px">Dashboard Header</el-header>
<el-container>
<el-aside width="220px">
<el-menu default-active="1" router>
<el-menu-item index="1">Home</el-menu-item>
<el-menu-item index="2">Reports</el-menu-item>
<el-menu-item index="3">Settings</el-menu-item>
</el-menu>
</el-aside>
<el-main>
<el-row :gutter="20">
<el-col :span="8">
<el-card>Card 1</el-card>
</el-col>
<el-col :span="8">
<el-card>Card 2</el-card>
</el-col>
<el-col :span="8">
<el-card>Card 3</el-card>
</el-col>
</el-row>
</el-main>
</el-container>
<el-footer height="60px">© 2026 Company</el-footer>
</el-container>
В этом примере создаётся полноценный дашборд с заголовком, боковой панелью, основным контентом в виде сетки карточек и подвалом, демонстрирующий все возможности контейнерных макетов Element Plus.
Контейнерная система Element Plus обеспечивает структурированность, гибкость и адаптивность интерфейсов без необходимости писать сложный CSS. Все компоненты логически связаны и полностью совместимы друг с другом в рамках одного макета.