使用flex:1可实现等分布局,其核心是flex-grow:1和flex-basis:0%,使子元素均分容器空间。设置父容器display:flex,子元素flex:1,即可自动平分宽度,适用于导航栏、表单、卡片等响应式布局,支持与其他固定宽度元素混合使用,无需计算百分比,兼容性好且易于维护。

使用CSS Flexbox实现等分布局非常简单,核心在于设置子元素的 flex: 1。这个属性能让所有子项自动平分父容器的可用空间,无论有多少个子元素,都能保持宽度一致,响应式效果也非常好。
flex: 1 是什么?
flex: 1 是 flex-grow: 1、flex-shrink: 1 和 flex-basis: 0% 的简写。在等分布局中,最关键的是:
- flex-grow: 1:允许子元素扩展,填满剩余空间
- flex-basis: 0%:让子元素初始宽度为0,这样每个子项才能真正“均分”容器空间,而不是基于自身内容宽度再分配
如果不设 flex-basis: 0,子元素会先按内容宽度占据空间,再分配剩余部分,导致不均等。
实现等分布局的基本结构
HTML结构示例:
立即学习“前端免费学习笔记(深入)”;
CSS样式:
.container {display: flex;
}
.item {
flex: 1;
}
这样四个子元素就会完全均分容器的宽度,每个大约占25%。
常见应用场景
- 导航栏均分:多个导航链接自动等宽,适配不同屏幕
- 表单布局:如两栏或三栏输入框并排,宽度一致
- 卡片布局:多个内容卡片在一行中均匀排列
如果只想某些子项等分,其他固定宽度,可以混合使用:
.sidebar {width: 100px;
}
.main {
flex: 1;
}
左侧固定100px,右侧自动填充剩余空间。
基本上就这些。只要父容器是 display: flex,子元素设 flex: 1,就能轻松实现自动等分,无需计算百分比,兼容性好,维护也方便。










