使用Flexbox实现响应式两栏布局,通过flex属性按比例分配宽度,结合媒体查询在不同屏幕下调整排列方式与比例,适配多设备。

要在CSS中实现响应式两栏布局,并通过Flexbox灵活调整左右容器的宽度,关键在于使用display: flex结合flex属性来控制子元素的伸缩行为。这种方式无需固定像素值,能自动适应不同屏幕尺寸。
基本HTML结构
先搭建一个简单的两栏结构:
主内容区
使用Flexbox设置弹性布局
将父容器设为Flexbox布局,子元素即可按比例分配空间:
.container {
display: flex;
gap: 20px; /* 可选:添加间距 */
}
.sidebar {
flex: 1; /* 占据1份宽度 */
}
.main-content {
flex: 3; /* 占据3份宽度,整体为4份,即侧边栏占25%,主内容占75% */
}
这样在任何设备上,两栏都会按1:3的比例自动调整宽度。
立即学习“前端免费学习笔记(深入)”;
响应式断点调整布局
在小屏幕上,可以改为单列堆叠,提升可读性:
@media (max-width: 768px) {
.container {
flex-direction: column;
}
.sidebar,
.main-content {
flex: none;
width: 100%;
}
}
当屏幕小于768px时,两栏垂直排列,各自占据完整宽度,更适合手机浏览。
自定义响应式比例
你也可以在不同屏幕下改变比例。例如平板上使用等宽两栏:
@media (min-width: 769px) and (max-width: 1024px) {
.sidebar { flex: 1; }
.main-content { flex: 1; } /* 等宽 */
}
这样就能实现多层级的响应式控制,适配桌面、平板和手机。
基本上就这些。用Flexbox做响应式两栏布局简单又高效,通过flex比例和媒体查询,能轻松应对各种设备场景。不复杂但容易忽略细节,比如gap和flex-direction的配合使用。










