cssflex布局实现左右固定中间自适应怎么做_中间区域使用flex-grow

13次阅读

flex布局实现左右固定、中间自适应,关键是容器设display: flex,左右区域用width或flex: 0 0 auto,中间区域用flex-grow: 1占满剩余空间。

cssflex布局实现左右固定中间自适应怎么做_中间区域使用flex-grow

用 Flex 布局实现左右固定、中间自适应,关键是把容器设为 display: flex,左右区域设置固定宽度(或 flex: 0 0 auto),中间区域用 flex-grow: 1 占满剩余空间。

基础 html 结构

保持语义清晰,结构简单:

zuojiankuohaophpcndiv class="tuc-19bc10f7-1ed97e-0 cont<a href= tuc-19bc10f7-1ed97e-0"https://seo.sqjnqi.com/tag/ai/">ainer"youjiankuohaophpcn
zuojiankuohaophpcndiv class="tuc-19bc10f7-1ed97e-0 left tuc-19bc10f7-1ed97e-0"youjiankuohaophpcn左栏zuojiankuohaophpcn/divyoujiankuohaophpcn
zuojiankuohaophpcndiv class="tuc-19bc10f7-1ed97e-0 main tuc-19bc10f7-1ed97e-0"youjiankuohaophpcn中间内容(自适应)zuojiankuohaophpcn/divyoujiankuohaophpcn
zuojiankuohaophpcndiv class="tuc-19bc10f7-1ed97e-0 right tuc-19bc10f7-1ed97e-0"youjiankuohaophpcn右栏zuojiankuohaophpcn/divyoujiankuohaophpcn
zuojiankuohaophpcn/divyoujiankuohaophpcn

核心 css 设置

容器启用 Flex,子项按需分配空间:

.container {
display: flex;
}
.left,
.right {
width: 200px; /* 或 flex: 0 0 200px */
flex-shrink: 0; /* 防止被压缩 */
}
.main {
flex-grow: 1; /* 关键:撑开占满剩余宽度 */
min-width: 0; /* 可选:防止内容溢出时破坏布局(尤其含长文本/内联元素) */
}

常见注意事项

  • 左右栏用 width + flex-shrink: 0 更直观;也可统一用 flex: 0 0 200px(不放大、不缩小、基准宽 200px)
  • 中间区域建议加 min-width: 0,避免内部文字或 flex 子项导致容器异常撑宽
  • 若中间区域有 padding/margin,不影响 flex-grow 计算,但注意盒模型(推荐用 box-sizing: border-box)
  • 不需要设置 flex-basis(如 flex: 1),因为 flex-grow: 1 已足够;flex: 1 等价于 flex: 1 1 0%,但语义不如显式写 flex-grow 清晰

响应式小优化(可选)

在小屏下可改为垂直堆叠:

立即学习前端免费学习笔记(深入)”;

@media (max-width: 768px) {
.container {
flex-direction: column;
}
.left,
.right {
width: auto;
flex: none;
}
.main {
flex-grow: 0;
}
}

text=ZqhQzanResources