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

如何移除首尾card容器侧边内边距并保持所有卡片等宽?

解决方案

问题分析

当前通过给每个card-container设置左右8px内边距实现卡片间16px间距,但这会导致卡片组左右两侧出现间隙。直接移除首尾卡片的内边距会让这两张卡片的内容宽度变大(内边距原本占用了空间),破坏卡片宽度一致性。


方案1:使用Flexbox Gap属性(推荐,现代浏览器支持)

利用Flexbox的gap属性直接设置卡片间的间距,该属性只会在元素之间添加间隙,不会影响外侧边缘。同时通过box-sizing: border-box确保内边距不干扰元素宽度计算。

修改后的CSS代码:

* {
  box-sizing: border-box; /* 全局设置,让内边距和边框计入元素宽度 */
}

body {
  margin: 0;
}

.wrapper {
  display: flex;
  gap: 16px; /* 设置卡片间16px间距 */
}

.card-container {
  flex: 1; /* 让所有卡片平分可用宽度,保持尺寸一致 */
}

.card-container .card-content {
  height: 150px;
  width: 100%;
  background-color: lightblue;
}

方案2:调整外边距和宽度(兼容旧版浏览器)

通过外边距实现卡片间距,同时使用calc()计算卡片宽度,抵消首尾卡片的外边距影响。

修改后的CSS代码:

* {
  box-sizing: border-box;
}

body {
  margin: 0;
}

.wrapper {
  display: flex;
}

.card-container {
  margin-right: 16px; /* 所有卡片右侧添加16px间距 */
  width: calc( (100% - 3 * 16px) / 4 ); /* 总宽度减去3个间隙后平分给4张卡片 */
}

/* 移除最后一张卡片的右侧外边距 */
.card-container:last-child {
  margin-right: 0;
}

.card-container .card-content {
  height: 150px;
  width: 100%;
  background-color: lightblue;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 00:07:45