flex 布局平均分布又能换行,子元素之间还要有空隙

用flex-wrap: wrap;来换行,用justify-content: space-between;来平分,
在父元素末尾加上after伪元素,让其自动添补最后一个位置,高度设为0 便不影响后面的元素

举例我们需要3个元素为一行,并且平分布局

当元素不满足3个的的时候

刚好有九元素的时候

### 如何在 Flex 布局中使子元素强制换行Flex 布局中,`flex-wrap` 属性用于控制弹性子项是否以及如何换行。默认情况下,`flex-wrap` 的值为 `nowrap`,这意味着即使空间不足,子元素也不会换行[^1]。 如果希望子元素能够根据容器宽度自动换行,则可以将 `flex-wrap` 设置为 `wrap` 或者 `wrap-reverse`。以下是具体的实现方法: #### 使用 `flex-wrap: wrap` 当设置 `flex-wrap: wrap` 时,弹性子项会在必要时换行,并按照正常的文档流顺序排列[^4]。 ```html <style> .flex-container { display: flex; flex-wrap: wrap; /* 启用换行 */ justify-content: space-between; /* 让每行的子元素均匀分布 */ } .flex-item { width: 20%; /* 每个子元素占据父容器宽度的20% */ margin: 5px; background-color: lightblue; } </style> <div class="flex-container"> <div class="flex-item">项目1</div> <div class="flex-item">项目2</div> <div class="flex-item">项目3</div> <div class="flex-item">项目4</div> <div class="flex-item">项目5</div> </div> ``` 在此示例中,`.flex-container` 被定义为一个弹性容器并启用了 `flex-wrap: wrap`。由于 `.flex-item` 宽度被设定为父容器宽度的 20%,因此每一行最多能容纳五个子元素。超过五项的部分会自动换到下一行。 #### 防止子元素换行的情况对比 如果不希望子元素换行,可以通过设置 `flex-wrap: nowrap` 实现。例如,在以下代码片段中,无论有多少子元素或者它们占用的空间有多大,都不会发生换行行为[^3]: ```html <style> .no-wrap-container { display: flex; flex-wrap: nowrap; /* 不允许换行 */ } .no-wrap-item { flex: 0 0 auto; /* 子元素不可伸缩 */ width: 100px; height: 100px; margin: 5px; background-color: coral; } </style> <div class="no-wrap-container"> <div class="no-wrap-item"></div> <div class="no-wrap-item"></div> <div class="no-wrap-item"></div> </div> ``` 通过以上两种情况可以看出,`flex-wrap` 对于管理复杂布局中的溢出处理非常重要[^5]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值