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

React中使用CSS Grid布局渲染表格出现高度不协调如何解决

问题根源

你遇到的表格高度异常拉伸是CSS Grid布局的默认行为导致的:Grid布局中align-items属性默认值为stretch,会强制同一行内所有网格项的高度匹配该行最高元素的高度,才会出现短表格下方出现大量空白的情况。


最简修复方案

给.markets-container样式新增一行align-items: start即可,修改后的完整样式如下:

.markets-container {
  margin: 12.5px 0 0 0;
  min-height: 430px;
  max-height: 430px;
  overflow: auto;
  display: grid;
  grid-template-columns: auto auto;
  grid-column-gap: 10px;
  /* 新增如下配置,让网格项按自身内容高度排列,顶部对齐 */
  align-items: start;
}

可选优化方案

如果希望单个表格内容过长时独立滚动,避免整体容器滚动后看不到表头,可以给每个表格外层套一个独立的滚动容器:

  1. 修改JSX结构,给每个表格加外层包裹:
<Card.Body className="markets-container"> 
  { filteredMarkets.map((market) => (
    <div className="market-card" key={market.cId}>
      <Table size="sm" borderless={true} bordered>
        <thead>
          <tr>
            <th> {market.marketName} </th>
          </tr>
        </thead>
        <tbody> 
          {market.selections.map((selection) => ( 
            <tr key={selection.id}>
              <td> {selection.name} </td>
              <td> { selection.price.toFixed(2) } </td>
            </tr> 
          ))} 
        </tbody>
      </Table>
    </div>
  ))} 
</Card.Body>
  1. 新增对应样式:
.market-card {
  /* 控制单个表格最大高度,可根据需求调整 */
  max-height: 210px;
  overflow: auto;
}

内容的提问来源于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.02 04:15:02