Layout в Ant Design — это контейнер для структурирования интерфейса веб-приложения. Он используется для организации Header, Footer, Sider и Content, обеспечивая гибкость и простоту построения сложных макетов.
Базовая структура выглядит следующим образом:
import { Layout } from 'antd';
const { Header, Footer, Sider, Content } = Layout;
<Layout>
<Header>Заголовок</Header>
<Content>Основной контент</Content>
<Footer>Футер</Footer>
</Layout>
Каждый элемент имеет свои особенности и возможности.
Header используется для размещения верхней части страницы: логотипов, навигации, пользовательских меню.
style — позволяет задавать кастомные стили, например
фон или высоту.className — для подключения CSS-классов.theme — поддержка светлой и тёмной темы через
<Layout>.Пример с фиксированным Header:
<Layout>
<Header style={{ position: 'fixed', width: '100%', zIndex: 1 }}>
<div className="logo" />
<Menu theme="dark" mode="horizontal" defaultSelectedKeys={['1']}>
<Menu.Item key="1">Главная</Menu.Item>
<Menu.Item key="2">О нас</Menu.Item>
<Menu.Item key="3">Контакты</Menu.Item>
</Menu>
</Header>
<Content style={{ marginTop: 64 }}>
Основной контент с учётом фиксированного Header
</Content>
</Layout>
Ключевой момент: фиксированный Header требует отступа у Content, чтобы контент не перекрывался.
Footer отображается внизу страницы и обычно содержит авторские права, ссылки на политику конфиденциальности, контактные данные.
style и className для стилизации.Пример простого Footer:
<Footer style={{ textAlign: 'center' }}>
©2026 Компания. Все права защищены.
</Footer>
Sider — боковая панель, обычно для навигации или дополнительных инструментов. Может быть фиксированным, сворачиваемым, адаптивным.
width — ширина панели.collapsedWidth — ширина при сворачивании.collapsible — возможность сворачивания.breakpoint — точка для автоматического сворачивания на
малых экранах.theme — светлая или тёмная тема.Пример сворачиваемого Sider:
<Sider collapsible defaultCollapsed={false} width={200} theme="dark">
<Menu mode="inline" defaultSelectedKeys={['1']}>
<Menu.Item key="1">Панель 1</Menu.Item>
<Menu.Item key="2">Панель 2</Menu.Item>
<Menu.Item key="3">Панель 3</Menu.Item>
</Menu>
</Sider>
Особенность: Sider автоматически выстраивается слева или справа от Content в зависимости от порядка компонентов в Layout.
Content — основной контейнер для отображения информации. Он адаптируется к наличию Header, Footer и Sider.
style используется для отступов, фонового цвета и
минимальной высоты.Row и Col для создания
сетки внутри контента.Пример Content с внутренними отступами:
<Content style={{ margin: '24px 16px', padding: 24, minHeight: 280, background: '#fff' }}>
Основной контент страницы
</Content>
<Layout style={{ minHeight: '100vh' }}>
<Header style={{ color: '#fff' }}>Заголовок</Header>
<Layout>
<Sider collapsible>Меню</Sider>
<Content style={{ padding: '24px' }}>Контент</Content>
</Layout>
<Footer style={{ textAlign: 'center' }}>©2026 Компания</Footer>
</Layout>
minHeight: '100vh' гарантирует, что футер будет внизу
страницы даже при малом контенте.Ant Design поддерживает темы через атрибут
theme:
theme="dark" — тёмная тема для Header и Sider.theme="light" — светлая тема по умолчанию.style и
CSS-классы.Пример комбинированной темы:
<Header theme="dark">Тёмный Header</Header>
<Sider theme="light">Светлый Sider</Sider>
<Content>Контент</Content>
<Footer>Футер</Footer>
breakpoint="lg" автоматически
адаптируется к мобильным устройствам.padding,
margin) помогают сохранить читабельность на любых
экранах.Эта структура позволяет создавать как простые одностраничные интерфейсы, так и сложные административные панели с динамическими боковыми меню, фиксированными заголовками и адаптивным контентом.