布局组件
DUI 提供一组强大的布局组件,帮助你快速搭建页面结构。
Grid 网格
响应式网格系统,通过 cols prop 控制列数:
import { Grid } from '@dui/react';
<Grid cols={{ base: 1, sm: 2, lg: 4 }} gap="md">
<Card>项目 1</Card>
<Card>项目 2</Card>
<Card>项目 3</Card>
<Card>项目 4</Card>
</Grid> 断点: base (默认), sm (640px), md (768px), lg (1024px), xl (1280px)
Flex 弹性盒子
简化 Flex 布局,支持对齐和方向控制:
import { Flex } from '@dui/react';
<Flex gap="md" align="center" justify="between">
<div>Logo</div>
<nav>导航</nav>
<Button>登录</Button>
</Flex> Stack 堆叠
垂直或水平堆叠子元素,自动添加间距:
import { Stack } from '@dui/react';
<Stack gap="lg">
<Header />
<Main />
<Footer />
</Stack> Container 容器
限制内容最大宽度,保持阅读舒适度:
import { Container } from '@dui/react';
<Container maxW="container.lg">
<PageContent />
</Container> Divider 分割线
import { Divider } from '@dui/react';
<div>上半部分</div>
<Divider my="lg" />
<div>下半部分</div> 实战示例:页面布局
import { Flex, Grid, Container } from '@dui/react';
function PageLayout() {
return (
<Flex direction="col" minH="screen">
{/* Header */}
<header>
<Container>
<Flex align="center" justify="between">
<Logo />
<Nav />
</Flex>
</Container>
</header>
{/* Main */}
<main flex="1">
<Container py="lg">
<Grid cols={{ base: 1, lg: 3 }} gap="xl">
<Sidebar />
<Content />
<Toc />
</Grid>
</Container>
</main>
{/* Footer */}
<footer>
<Container>
<Copyright />
</Container>
</footer>
</Flex>
);
}