Grid

24 栅格布局:Row 容器 + Col 列,严格对齐 Semi。默认 Row=cd-row(display:block + clearfix),Col 用 float:left + width% 布局;Row type="flex" 时切 flex 布局并激活 justify/align(cd-row-flex-{justify}/-{align})。gutter 经 context 下发到 Col:Row 施加四向负 margin、Col 施加四向 padding 抵消,支持 [x,y] 与响应式对象(screens 状态机 + responsiveArray 从大到小降级)。Col 响应式为纯 CSS 类驱动(cd-col-{bp}-{span} 等,靠 @media 断点层叠)。

设计文档

如何引入

import { Grid } from '@chenzy-design/svelte';

基础栅格

24 列栅格系统,通过 span 指定列宽(float:left + width%),gutter 控制列间距。

span=24
span=12
span=12
span=8
span=8
span=8
span=6
span=6
span=6
span=6

行列间距

gutter 传 [水平, 垂直] 数组可同时设置行列间距;传响应式对象按断点降级取值。

gutter=[16, 24](水平 + 垂直间距)

Col 1
Col 2
Col 3
Col 4
Col 5
Col 6
Col 7
Col 8

gutter={{ xs: 8, md: 16, xl: 32 }}(响应式间距,缩放窗口生效)

Col 1
Col 2
Col 3
Col 4
Col 5
Col 6
Col 7
Col 8

列偏移

通过 offset 向右偏移指定列数(margin-left),实现灵活的留白布局。

span=8
span=8 offset=8
span=6 offset=6
span=6 offset=6

列位置微调

push / pull 相对移动列位置(left / right),可让 DOM 顺序与视觉顺序解耦。

主内容 span=18 push=6(DOM 在前,视觉在右)
侧栏 span=6 pull=18(DOM 在后,视觉在左)

Flex 水平排列

Row type="flex" 下 justify 控制水平排列:start/center/end/space-between/space-around。

justify="start"

col-4
col-4
col-4
col-4

justify="center"

col-4
col-4
col-4
col-4

justify="end"

col-4
col-4
col-4
col-4

justify="space-between"

col-4
col-4
col-4
col-4

justify="space-around"

col-4
col-4
col-4
col-4

Flex 垂直对齐

Row type="flex" 下 align 控制不等高列的垂直对齐:top/middle/bottom。

align="top"

56px
32px
72px
44px

align="middle"

56px
32px
72px
44px

align="bottom"

56px
32px
72px
44px

元素排序

Row type="flex" 下通过 order 改变列的视觉排列顺序,DOM 顺序不变。

源 1 · order=4
源 2 · order=3
源 3 · order=2
源 4 · order=1

响应式布局

通过 xs/sm/md/lg/xl/xxl 断点属性实现移动端到桌面端的自适应。

响应式列
响应式列
响应式列
≥lg 才显示

API 参考

Grid

Props

属性说明类型默认值
type设为 'flex' 时用 flex 布局(cd-row-flex)并激活 justify/align;缺省为 cd-row(block + float 清除)'flex'undefined
gutternumber→水平间距;[x,y]→水平+垂直;按断点对象 { xs,sm,md,... } 时经 screens 状态机 + responsiveArray 从大到小降级取第一个命中且有值的断点(对齐 Semi getGutter)。Row 施加四向负 margin,Col 四向 padding 抵消number|[number,number]|Partial<Record<Breakpoint,number>>0
aligntype="flex" 下生效:映射 align-items(cd-row-flex-top/middle/bottom)'top'|'middle'|'bottom'undefined
justifytype="flex" 下生效:映射 justify-content(cd-row-flex-start/center/end/space-between/space-around)'start'|'end'|'center'|'space-between'|'space-around''start'
classstring''
style内联样式,追加在 gutter margin 之后(可覆盖)string''
span0-24,生成 cd-col-{span} 类(float:left + width%);0 → cd-col-0 隐藏,未设为自动列numberundefined
offsetcd-col-offset-{n} → margin-left 偏移列数number0
ordercd-col-order-{n} → order(type="flex" 下生效)number0
pushcd-col-push-{n} → left 相对偏移number0
pullcd-col-pull-{n} → right 相对偏移number0
xs|sm|md|lg|xl|xxl响应式断点覆盖:值为 number(span) 或子集对象,生成 cd-col-{bp}-{span} 等 CSS 类,靠 @media (min-width) 断点层叠(纯 CSS 驱动,不读 JS 断点)number | { span?, offset?, order?, push?, pull? }undefined
classstring''
style内联样式,追加在 gutter padding 之后(可覆盖)string''

Slots

名称说明
childrenRow 内放 Col;Col 内放任意内容

Accessibility

  • 纯布局容器,不引入语义角色

设计变量

变量默认值用法
--cd-width-grid-columns 24栅格宽度