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

如何实现表头固定、表身可滚动且带圆角的表格?

解决方案

问题分析与修改要点

1. 表格圆角不显示

原代码里border-collapse: collapse会直接抵消圆角效果,同时没有给容器或表格设置圆角属性,内部元素溢出也会破坏圆角展示。

2. tbody行与滚动条空隙

将tbody设为display:block后,表头行(默认table-row布局)和表身行列宽不匹配,加上tbody宽度计算偏差,导致右侧出现间隙。


修改后的完整代码

HTML 代码

<div class="col-lg-4 table-container">
  <table>
    <thead>
      <tr>
        <th class="table_header">DEPARTMENTS</th>
      </tr>
    </thead>
    <tbody class="scrollable-body">
      <tr *ngFor="let department of departments">
        <td>{{ department }}</td>
      </tr>
    </tbody>
  </table>
</div>

CSS 代码

.table-container {
  max-height: 200px;
  border-radius: 8px; /* 容器设置圆角 */
  overflow: hidden; /* 隐藏内部溢出,保证圆角生效 */
  border: 1px solid #ccc; /* 统一外边框,避免表头表身视觉错位 */
}

.table_header {
  padding: 8px; /* 替换原5%内边距,避免布局变形 */
  color: #015468;
}

table {
  width: 100%;
  border-collapse: separate; /* 替换collapse,让圆角可生效 */
  border-spacing: 0; /* 消除单元格间隙 */
  table-layout: fixed;
}

thead {
  position: sticky;
  top: 0;
  background-color: white;
}

/* 表头单元格设置顶部圆角 */
thead th:first-child {
  border-top-left-radius: 8px;
}
thead th:last-child {
  border-top-right-radius: 8px;
}

/* 表身最后一行设置底部圆角 */
tbody.scrollable-body tr:last-child td:first-child {
  border-bottom-left-radius: 8px;
}
tbody.scrollable-body tr:last-child td:last-child {
  border-bottom-right-radius: 8px;
}

tbody.scrollable-body {
  display: block;
  max-height: calc(200px - 40px); /* 减去表头高度,避免双重滚动 */
  overflow-y: auto;
  width: 100%; /* 保证tbody宽度与表格一致 */
}

/* 统一表头和表身行的布局,确保列宽匹配 */
thead tr, tbody.scrollable-body tr {
  display: table;
  width: 100%;
  table-layout: fixed;
}

th, td {
  border: 1px solid #ccc;
  padding: 8px;
  border-bottom: none; /* 去掉重复的底部边框 */
}

/* 表身最后一行单元格添加底部边框 */
tbody.scrollable-body tr:last-child td {
  border-bottom: 1px solid #ccc;
}

修改说明

  • 圆角实现:把border-collapse改为separate,外层容器加圆角和溢出隐藏,再分别给表头顶部、表身底部的单元格设置对应圆角,保证整体圆角效果完整。
  • 消除滚动条间隙:让表头行和表身行统一使用display:table和table-layout:fixed,强制列宽一致;调整tbody的最大高度,避免容器和tbody双重滚动;设置tbody宽度100%,消除右侧空隙。
  • 细节优化:统一内边距,调整边框样式避免重复,让整体视觉更协调。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 10:17:49