使用flex:1可让子元素等分容器宽度,父容器需设display:flex;固定宽与弹性宽可混合布局;配合box-sizing:border-box和min-width优化显示效果。
在使用 CSS Flexbox 布局时,让子元素等分容器宽度是一个非常常见的需求。实现方式简单且兼容性良好,关键是正确设置 flex 属性和父容器的 display: flex。
当所有子元素设置 flex: 1 时,它们会平均分配父容器的可用空间。
示例:
HTML:
CSS:
.container {
display: flex;
}
.item {
flex: 1;
}
三个子元素将平分容器宽度,无论内容多少。
有时需要某些子元素固定宽度,其余等分剩余空间。
技巧:例如:一个侧边栏固定宽,主区域占剩余空间。
若子元素有 padding 或 border,可能影响布局表现。建议:
这样宽度计算更可控,避免溢出。
默认情况下,flex 项在空间不足时会被压缩。可通过设置 min-width: 0 或指定最小宽度来优化。
推荐做法:基本上就这些。只要父容器是 display: flex,子元素用 flex: 1,就能轻松实现等分。灵活搭配 flex 属性可应对各种布局场景。