flex-wrap用于控制弹性子元素是否换行:nowrap不换行,wrap从上到下换行,wrap-reverse从下到上换行。配合display: flex和flex-direction可实现多行布局,常用于响应式卡片、导航菜单等场景。

使用 flex-wrap 可以控制弹性容器中的子元素是否换行,以及换行方式。当弹性项目总宽度超过容器时,默认情况下它们会被压缩而不换行。通过设置
flex-wrap
,可以让子元素在空间不足时自动换到下一行。
flex-wrap 的可选值
flex-wrap 有三个常用取值:
- nowrap:默认值,所有子元素都在一行显示,不换行。
- wrap:子元素从上到下排列,第一行在顶部,后续行依次向下。
- wrap-reverse:子元素从下到上排列,第一行在底部,后续行向上堆叠。
基本用法示例
让弹性子元素支持多行排列:
.container {
display: flex;
flex-wrap: wrap;
}
这样当子元素总宽度超出容器时,超出的部分会自动换到下一行,形成多行布局。
立即学习“前端免费学习笔记(深入)”;
结合 flex-direction 使用
你可以将 flex-wrap 和 flex-direction 配合使用来控制主轴方向:
- 默认
flex-direction: row
搭配
wrap
实现水平排列、垂直换行。
- 使用
flex-direction: column
时,
wrap
会让子元素在列方向溢出时换新列(从左到右)。
常见应用场景
适合用于响应式布局,比如:
- 图片或卡片网格,屏幕变窄时自动换行。
- 导航菜单项在小屏幕上堆叠成多行。
- 标签(tags)或按钮组的自适应排列。
基本上就这些。只要设置
flex-wrap: wrap
,就能轻松实现多行弹性布局,无需浮动或定位。关键是容器设为
display: flex
并开启换行,子元素会自然按需折行。


