React - Material UI:如何从表格中删除滚动条

Posted

技术标签:

【中文标题】React - Material UI:如何从表格中删除滚动条【英文标题】:React - Material UI: How to remove scrollbar from table 【发布时间】:2020-06-27 23:21:21 【问题描述】:

我使用以下说明构建了一个带有反应和材料 UI 的简单表格:https://material-ui.com/components/tables/#table。

它工作正常,但滚动条困扰我。

是否有让滚动条从红色箭头开始的选项?还是完全删除?

提前谢谢你

代码

    <TableContainer component=Paper style=maxHeight: 350>
    <Table className=styles.table size="small" stickyHeader>
      <TableHead>
        <TableRow >
          <TableCell className=styles.header>
            <Checkbox checked=allSelected onClick=handleSelectAll color="primary"/>
          </TableCell>
          <TableCell className=styles.header align="left">Name</TableCell>
          props.showAdmin && <TableCell className=styles.header>Admin</TableCell>
        </TableRow>
      </TableHead>
      <TableBody>
        props.employees.map(empl => (
          <TableRow key=empl.id>
            <TableCell>
              <Checkbox checked=isSelected(empl.id) onClick=() =>handleSelect(empl.id) className=styles.checkBox color="primary"/>
            </TableCell>
            <TableCell component="th" scope="row" style=paddingRight: 30>empl.name</TableCell>
            props.showAdmin && <TableCell align="center"><Checkbox disabled checked=empl.isAdmin className=styles.checkBox/></TableCell>
          </TableRow>
        ))
      </TableBody>
    </Table>
  </TableContainer>

风格

createStyles(
  table: 
   maxWidth: 350,
   maxHeight: 300
  ,
  header: 
   backgroundColor: '#123456',
   color: '#ffffff',
   fontSize: 18
 ,
 checkBox: 
   paddingTop: 1,
   paddingBottom: 1,
 
),
);

【问题讨论】:

你能做一个在线演示吗?因为我们可以在官方文档中找到滚动条默认隐藏6hft4n.run.stackblitz.io 我无法使用您的链接,但我确实在这里创建了一个:codesandbox.io/s/upbeat-wilbur-ck0wq 我复制了我的确切代码。谢谢@keikai 【参考方案1】:

如果删除TableContainermaxHeight 样式,滚动条就会消失。

<TableContainer component=Paper style= maxHeight: 350 >

<TableContainer component=Paper>

更新

如果您想从标题下方滚动,只需将相关的 CSS 添加到 material-ui 组件 TableTableBody 就可以了。

table: 
  display: "block",
  maxWidth: 350,
,
body: 
  display: "block",
  overflow: "auto",
  height: "300px"
,

参考:

how-to-set-tbody-height-with-overflow-scroll

how-do-i-completely-fill-a-table-100-with-tbody-in-html

在线试用:


【讨论】:

是的,但是有了额外的项目,列表会无限增长,我打算将此组件嵌入到其他组件中。你有别的想法吗? 谢谢你,因为它对我帮助很大。您是否知道如何使可滚动部分与整个区域一样宽并将列与标题对齐? @keikai @Taldorr 已更新,如果这篇文章解决了您的问题,请接受它,我们将不胜感激。 感谢您的输入,图片看起来很有希望,但是一旦您更改员工姓名的长度或在应用程序组件中启用 showAdmin,它就无法正常工作。尽管如此,你的答案是最好的:)【参考方案2】:

要使用jss材质ui来移除滚动条,这样做很简单

container_with_scrolls:
    overflowX:'scroll',
    '&::-webkit-scrollbar':
        width:0,
    
,

【讨论】:

以上是关于React - Material UI:如何从表格中删除滚动条的主要内容,如果未能解决你的问题,请参考以下文章

React js Material-UI 响应式表格

React Material-UI无法调整表格大小

如何将borderTop添加到React Material UI Table?

如何在 Material ui 数据表中悬停或鼠标悬停时更改表格行背景颜色

使用 Redux/React 的 Material UI TablePagination 句柄

React Formik Material UI Autocomplete:如何从 localStorage 填充自动完成内部的值?