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

如何去除React Bootstrap中Card内嵌Table的底部多余空白

出现多余空白是两处默认样式共同导致的:

  • React Bootstrap 的Card组件未手动声明Card.Body时,会自动给内部元素包裹一层带上下内边距的card-body容器,底部内边距会产生空白
  • Bootstrap 内置的Table组件默认带有margin-bottom: 1rem的底部外边距,额外撑出了底部空间

方案1:使用Bootstrap内置工具类(无需额外写自定义CSS,推荐)

直接修改组件代码,通过Bootstrap自带的间距工具类移除多余边距即可:

const Market = ({ marketName, selections }) => {
  return (
    <div className="market-wrapper">
      <Card>
        <Card.Header className="market-header">{marketName}</Card.Header>
        {/* 手动声明Card.Body,用pb-0移除底部内边距 */}
        <Card.Body className="pb-0">
          {/* 给Table加mb-0移除默认底部外边距 */}
          <Table size="sm" striped bordered hover className="mb-0">
            <tbody>
              {selections.map((selection) => (
                <tr key={selection.id}>
                  <td style={{ width: "50%" }}>{selection.name}</td>
                  <td style={{ width: "50%" }}>{selection.price.toFixed(2)}</td>
                </tr>
              ))}
            </tbody>
          </Table>
        </Card.Body>
      </Card>
    </div>
  );
};

方案2:追加自定义CSS规则

如果你不想调整组件结构,可以直接在现有CSS文件中添加如下规则:

/* 移除Card默认生成的card-body的底部内边距 */
.market-wrapper .card .card-body {
  padding-bottom: 0;
}
/* 移除Table的默认底部外边距 */
.market-wrapper .table {
  margin-bottom: 0;
}

如果Table底部边框和Card底部有样式重合问题,可以把padding-bottom: 0调整为padding-bottom: 1px微调即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 03:48:03