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

如何实现响应式卡片组内多余卡片在下一行自动居中的布局效果

解决方案

你当前布局问题的核心原因是justify-content: space-between的对齐规则:它会将每行的剩余空间全部分配到元素之间,所以最后一行不足元素数量时,元素会向两端对齐,无法居中。你可以按照下面的方案调整代码:

修改后的CSS代码

.skills-content {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  /* 替换space-between为center,让剩余行的元素自动居中 */
  justify-content: center;
  /* 用gap控制卡片之间的横向、纵向间距,无需手动计算宽度偏移 */
  gap: 20px;
}

.card {
  /* 大屏幕下一行4张:宽度占25%,减去gap分摊的宽度即可 */
  width: calc(25% - 15px);
  background: blue;
  color: white;
  text-align: center;
  border-radius: 6px;
  padding: 20px 25px;
  transition: all 0.5s ease;
}

/* 中等屏幕适配,可根据你的实际断点调整1199px这个数值 */
@media (max-width: 1199px) {
  .card {
    /* 中等屏幕下一行3张:宽度占33.333% */
    width: calc(33.333% - 15px);
  }
}

/* 小屏幕适配可选,根据你的需求调整参数即可 */
@media (max-width: 767px) {
  .card {
    width: calc(100% - 20px);
  }
}

如果你需要兼容不支持flex gap的老旧浏览器,可以删除gap属性,给.card添加margin: 0 10px 20px 10px,效果完全一致。

你的HTML代码无需做任何修改,仅调整上述CSS即可实现预期效果:大屏幕一行排布4张卡片,剩余1张在下一行居中;中等屏幕一行排布3张卡片,剩余2张在下一行居中。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:06:01