You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Mantine UI Grid实现首行仅占4格的表单布局?

优雅实现Mantine UI Grid表单布局需求

你可以通过两种更简洁的方式实现需求,避免冗余的空列和媒体查询:

方式1:利用Grid自动换行特性

Mantine Grid基于flex布局,当列的总宽度超过12格时会自动换行。直接按顺序排列列即可:

<Grid>
  {/* 首行:移动端占满宽度,桌面端占4格 */}
  <Grid.Col xs={12} md={4}>Row 1 Column 1</Grid.Col>
  
  {/* 第二行的三个列:移动端各占满宽度,桌面端各占4格 */}
  <Grid.Col xs={12} md={4}>Row 2 Column 1</Grid.Col>
  <Grid.Col xs={12} md={4}>Row 2 Column 2</Grid.Col>
  <Grid.Col xs={12} md={4}>Row 2 Column 3</Grid.Col>
</Grid>

在md及以上屏幕中,首行的列占4格,剩余8格留白;第二行的三个列总宽度为12格,会自动换行到新的一行并填满整行。移动端所有列都会堆叠显示,占满100%宽度。

方式2:显式使用Grid.Row划分行

如果希望布局结构更清晰,可以用Grid.Row显式分隔不同行,避免依赖自动换行的隐式行为:

<Grid>
  <Grid.Row>
    <Grid.Col xs={12} md={4}>Row 1 Column 1</Grid.Col>
  </Grid.Row>
  <Grid.Row>
    <Grid.Col xs={12} md={4}>Row 2 Column 1</Grid.Col>
    <Grid.Col xs={12} md={4}>Row 2 Column 2</Grid.Col>
    <Grid.Col xs={12} md={4}>Row 2 Column 3</Grid.Col>
  </Grid.Row>
</Grid>

这种方式的布局效果和方式1完全一致,但代码结构更直观,后续维护时能快速区分不同行的内容。

这两种方式都比你之前的空列+媒体查询方案更简洁,符合Mantine Grid的设计规范,也避免了冗余的DOM元素。

内容的提问来源于stack exchange,提问作者Brian DiCasa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 04:02:06