在常见的UI框架中,row-col布局是栅格化布局的核心实现方式,通过行和列的嵌套来划分页面区域,组件通常放置在col列容器中,调整组件之间的上下间距需要结合布局本身的特性和CSS样式来实现。

row-col布局的基本结构
row-col布局的基础结构由外层row容器和内层col列组成,row默认会清除浮动并控制列的排列,col会根据设置的占比划分水平空间,默认情况下同列内的组件会按照文档流顺序排列,相邻组件之间没有默认的上下间距。
<div class="row">
<div class="col-6">
<div class="component">组件1</div>
<div class="component">组件2</div>
</div>
<div class="col-6">
<div class="component">组件3</div>
<div class="component">组件4</div>
</div>
</div>
设置上下间距的三种方式
1. 直接给组件添加margin样式
这是最直接的方式,通过给每个组件添加下边距,实现组件之间的上下间隔,适合间距统一且不需要频繁调整的场景。
/* 给所有组件添加下边距,最后一个组件不需要的话可以单独覆盖 */
.component {
margin-bottom: 16px;
}
/* 最后一个组件清除下边距,避免多余空白 */
.col-6 .component:last-child {
margin-bottom: 0;
}
2. 使用row组件的内置间距属性
部分UI框架的row组件提供了内置的间距配置,比如设置gutter属性可以同时控制列之间的水平和垂直间距,不需要单独给组件写样式。
<!-- 设置gutter为16,列之间水平和垂直都会有16px的间距 -->
<div class="row" gutter="16">
<div class="col-6">
<div class="component">组件1</div>
<div class="component">组件2</div>
</div>
</div>
3. 自定义间距工具类
如果项目中需要多种不同的上下间距,可以定义通用的间距类,按需添加到组件上,方便统一管理。
/* 定义不同尺寸的间距类 */
.mb-8 {
margin-bottom: 8px;
}
.mb-16 {
margin-bottom: 16px;
}
.mb-24 {
margin-bottom: 24px;
}
<div class="row">
<div class="col-6">
<div class="component mb-16">组件1</div>
<div class="component mb-8">组件2</div>
<div class="component">组件3</div>
</div>
</div>
注意事项
- 不要在row容器上直接设置上下margin,可能会影响整体布局的外边距计算,导致页面出现意外的滚动条。
- 如果使用框架的内置gutter属性,需要确认框架是否支持垂直间距,部分旧版本框架的gutter只控制水平列间距。
- 同列内最后一个组件的margin-bottom最好清零,避免列容器被撑大,影响和其他列的 alignment 对齐效果。
不同场景的选择建议
如果是全局统一的组件间距,优先使用组件margin样式统一设置;如果需要同时调整列间距和组件上下间距,优先使用row的gutter属性;如果项目中间距样式多变,自定义工具类会更灵活。可以根据实际项目的UI框架和需求选择对应的实现方式,保证布局的一致性和可维护性。