Skip to content

Layout 栅格布局

通过基础的 24 分栏,迅速简便地创建布局。

基础布局

使用单一分栏创建基础的栅格布局。

分栏间隔

分栏之间存在间隔。

混合布局

通过基础的 1/24 分栏任意扩展组合形成较为复杂的混合布局。

分栏偏移

支持偏移指定的栏数。

对齐方式

通过 justify 属性来指定 start, center, end, space-between, space-around, space-evenly 其中的值来定义子元素的排版方式。

响应式布局

参照了 Bootstrap 的 响应式设计,预设了五个响应尺寸:xssmmdlgxl

交互式示例

动态调整栅格参数,实时查看效果。

实用布局案例

典型页面布局

卡片网格布局

表单布局

使用提示

最佳实践

  1. 合理使用间隔:建议使用 16px 或 20px 的间隔,这样既能保持视觉层次,又不会过于拥挤。

  2. 响应式设计:优先考虑移动端体验,使用 :xs 属性定义小屏幕布局,然后逐步适配更大屏幕。

  3. 语义化布局:根据内容的重要性和层级关系来安排栅格,而不是仅仅为了视觉效果。

  4. 性能考虑:避免过度嵌套 Row 和 Col 组件,保持结构简洁。

常见问题

Q: 为什么设置了 gutter 但没有效果?

A: 确保 gutter 设置在 Row 组件上,而不是 Col 组件。gutter 会自动为子 Col 组件添加相应的 padding。

Q: 如何实现垂直居中?

A: 使用 Row 的 align="middle" 属性,或者结合 CSS 的 flexbox 属性。

Q: 响应式断点是什么?

A:

  • xs: <576px
  • sm: ≥576px
  • md: ≥768px
  • lg: ≥992px
  • xl: ≥1200px

Q: 可以嵌套使用吗?

A: 可以,但建议保持结构简洁,避免过度嵌套影响性能。

vue
<!-- 正确的嵌套使用 -->
<c-row>
  <c-col :span="12">
    <c-row :gutter="10">
      <c-col :span="12">内容1</c-col>
      <c-col :span="12">内容2</c-col>
    </c-row>
  </c-col>
  <c-col :span="12">其他内容</c-col>
</c-row>

Row API

Row Attributes

属性名说明类型可选值默认值
gutter栅格间隔number0
justifyflex 布局下的水平排列方式stringstart / end / center / space-around / space-between / space-evenlystart
alignflex 布局下的垂直排列方式stringtop / middle / bottomtop
wrap是否自动换行,仅在 type 为 flex 时有效booleantrue

Col API

Col Attributes

属性名说明类型可选值默认值
span栅格占据的列数number0-2424
offset栅格左侧的间隔格数number0-240
push栅格向右移动格数number0-240
pull栅格向左移动格数number0-240
xs<768px 响应式栅格数或者栅格属性对象number0-24
sm≥768px 响应式栅格数或者栅格属性对象number0-24
md≥992px 响应式栅格数或者栅格属性对象number0-24
lg≥1200px 响应式栅格数或者栅格属性对象number0-24
xl≥1920px 响应式栅格数或者栅格属性对象number0-24