使用 Reactstrap 响应式表的带有固定标题的可滚动表

Posted

技术标签:

【中文标题】使用 Reactstrap 响应式表的带有固定标题的可滚动表【英文标题】:Scrollable Table with Fixed Header using Reactstrap responsive table 【发布时间】:2021-12-17 03:11:12 【问题描述】:

我有这张桌子https://stackblitz.com/edit/reactstrap-v8-pwyocr?file=Example.js 在我想要的一个项目中实现的是它可以使标题保持不变并让表格的主体移动 (类似这样的东西:https://v4.mui.com/components/tables/#fixed-header)

任何人都可以在这方面帮助我

【问题讨论】:

【参考方案1】:

对标题单元格使用粘性位置,并确保使用 z-index 和背景将它们显示在正文单元格上方

反应:

...
<Table  bordered className="fixed-header">
...

CSS:

.fixed-header thead th  /* the thead selector is required because there are th elements in the body */
  position: sticky;
  top: 0;
  z-index: 10;
  background-color: white;

注意:该解决方案可能会导致标题边框出现问题 - 它们不会在滚动时看到。此问题建议了该问题的可能解决方案: Table headers position:sticky and border issue

【讨论】:

【参考方案2】:

只需为表格主体设置固定高度并使其溢出,滚动。 即

.table-body 
 height: 600px;
 overflow-x: scroll;

【讨论】:

【参考方案3】:

您可以在 example.js 中添加此样式。

const style = 
  table: 
    width: '100%',
    display: 'table',
    borderSpacing: 0,
    borderCollapse: 'separate',
  ,
  th: 
    top: 0,
    left: 0,
    zIndex: 2,
    position: 'sticky',
    backgroundColor: '#fff',
  ,
;

然后使用Table&th元素标签上的样式

<Table bordered  style=style.table>
   <thead>
      <tr>
        <th style=style.th>#</th>
        <th style=style.th>First Name</th>
        <th style=style.th>Last Name</th>
        <th style=style.th>Username</th>
      </tr>
 </thead>

这是工作的 example code on Stackblitz

查看result

采用 MUI V4 Fixed Header

【讨论】:

【参考方案4】:

只需从div arround 表中删除溢出并将其传递给tbody,并为theadtbody 定义高度。

【讨论】:

以上是关于使用 Reactstrap 响应式表的带有固定标题的可滚动表的主要内容,如果未能解决你的问题,请参考以下文章

具有显式表的 Prisma 查询嵌套列表

响应式表移动按钮不起作用

响应式表不填充它嵌套的整个列

为啥响应式表没有按预期工作?

Bootstrap 响应式表 -> 用列更改行

如何制作响应式表[关闭]