You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Flexbox实现网格首尾两端与内部元素间距一致?

解决方案

你需要的效果可以通过给flex容器添加水平内边距实现,原理是gap属性仅控制相邻flex子项之间的间距,不会作用于容器和首尾子项的衔接位置,补充等宽的左右内边距即可实现全链路统一的50px间距。

修改后完整代码

CSS 代码

.flex{
  display:flex;
  width:100%;
  background:yellow;
  align-items:center;
  flex-wrap: nowrap;
  overflow:auto;
  gap:50px;
  /* 新增左右内边距实现首尾50px间距 */
  padding: 0 50px;
  /* 避免padding导致容器实际宽度超出100% */
  box-sizing: border-box;
}

.flex div{
 width:90px;
 background:red;
 /* 避免子元素被挤压缩窄 */
 flex-shrink: 0;
}

HTML 代码(无需修改)

<div class="flex">
  <div> hello </div>
  <div> hello </div>
  <div> hello </div>
  <div> hello </div>
  <div> hello </div>
</div>

可选方案:使用伪元素实现

如果你不想修改容器的内边距,也可以通过给flex容器添加首尾伪元素,依靠gap自动生成首尾间距,效果和加padding完全一致:

.flex::before,
.flex::after {
  content: "";
  width: 0;
  flex-shrink: 0;
}

内容的提问来源于stack exchange,提问作者yavgz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:45:01