Skip to content

Grid

Grid 是弹性栅格容器,基于 12 列系统。

Basic

通过 container + size 组织栅格项。

Spacing

支持 spacing,以及更细粒度的 rowSpacing / columnSpacing

Columns

通过 columns 调整总列数(默认 12)。

Offset

支持 offset 控制起始偏移,支持数字和 auto

Grow

size="grow" 可让栅格项填充剩余空间。

Direction + Wrap

direction 支持 row / row-reversewrap 支持 boolean 或标准 flexWrap 值。

Nested Grid

支持在 Grid item 内继续作为 container 使用,构建复杂布局。

Dashboard Layout

仪表盘类布局示例(图表区 + 指标区 + 表格区)。

Form / Detail Layout

表单与详情页常见布局示例。

常见场景

基础布局

用于组织页面结构、控制间距、对齐和响应式布局。

组合嵌套

复杂页面推荐拆成多个 Grid 组合,避免在单个容器中堆叠过多职责。

响应式适配

可通过尺寸、间距、classNamesx 处理不同屏幕下的布局变化。

Usage

tsx
import { Grid } from "@ldkj/web-ui";

export function Example() {
  return (
    <Grid container spacing={2}>
      <Grid size={8}>Main</Grid>
      <Grid size={4}>Aside</Grid>
    </Grid>
  );
}

API

Grid 继承 Box 的基础能力,支持 componentclassloadingloadingContentmodalmodalContentonModalMaskClick 以及原生属性透传。

属性说明类型默认值
container是否作为栅格容器booleanfalse
size栅格项占列数或自适应增长number | 'grow'-
offset栅格项偏移列数或自动偏移number | 'auto'-
columns列总数(容器/上下文)number12
spacing行列统一间距number | string-
rowSpacing行间距number | string-
columnSpacing列间距number | string-
wrap换行模式boolean | React.CSSProperties['flexWrap']'wrap'
direction主轴方向(容器)'row' | 'row-reverse''row'
className追加类名string-
style内联样式React.CSSProperties-
sxCSS-in-JS 样式入口SxProps(支持对象/数组/函数,支持伪类、选择器、媒体查询)-
children内容React.ReactNode-

行为规则 / 优先级

  • 布局组件只处理结构、尺寸和对齐,不承载业务状态。
  • classNameclass 用于追加类名;如同时传入原生 style,内联样式会按 React 规则覆盖同名 CSS。
  • 复杂内容优先通过组合能力传入,避免在组件内部硬编码业务文案。
  • Grid 的默认值应服务于最常见场景,特殊场景通过显式 props 覆盖。

Notes

  • 布局层尽量保持语义清晰,避免把业务点击行为隐藏在纯布局组件里。
  • 文档 demo 展示的是推荐组合方式;生产代码中可按业务密度调整间距和尺寸。
  • 修改组件能力时需要同步更新本页 Demo、Usage、API 与行为规则。