使用 flexbox 实现响应式两列布局高效灵活,通过 display: flex、flex 属性控制比例,gap 设置间距,配合 flex-wrap 和媒体查询实现多屏适配,支持等比分配、固定加自适应及堆叠布局,简洁直观。

使用 Flexbox 实现响应式两列布局非常高效且灵活。通过几个关键属性,你可以轻松控制列宽、间距以及在不同屏幕下的表现,无需复杂计算。
基本结构与 Flex 容器设置
先构建一个包含两个子元素的容器,设置为 Flex 布局:
html 结构:
css 设置:
立即学习“前端免费学习笔记(深入)”;
将容器设为 flex,并让子项自动伸缩:
.container {
display: flex;
gap: 20px; /* 列之间间距,推荐使用 gap 而非 margin */
flex-wrap: wrap; /* 允许换行,小屏下变为单列 */
}
灵活控制列宽比例
利用 flex 属性快速分配列宽。例如,实现左侧窄、右侧宽的常见布局:
.left {
flex: 1; /* 占据 1 份空间 */
}
.right {
flex: 3; /* 占据 3 份空间,整体形成 1:3 比例 */
}
这样无论屏幕多大,两列都会按比例填充容器,且自动适应尺寸变化。
响应式断点处理
当屏幕过小时,可以改为上下堆叠布局:
@media (max-width: 768px) {
.container {
flex-direction: column;
}
.left,
.right {
flex: none; /* 取消伸缩,避免过度拉伸 */
width: 100%; /* 确保占满整行 */
}
}
在移动端,两列垂直排列,阅读更友好。
额外技巧:固定宽度 + 自适应宽度混合布局
如果一列需要固定宽度(如侧边栏 250px),另一列自动填满剩余空间:
.left {
width: 250px;
}
.right {
flex: 1; /* 自动撑满剩余空间 */
}
这种写法简洁有效,无需计算百分比。
基本上就这些。Flexbox 让响应式两列布局变得直观又可控,合理使用 flex、gap 和媒体查询,就能应对大多数场景。不复杂但容易忽略细节。