如何将叠加层添加到材质 UI 表格行?

Posted

技术标签:

【中文标题】如何将叠加层添加到材质 UI 表格行?【英文标题】:How to add overlay to material UI table row? 【发布时间】:2020-11-01 02:30:32 【问题描述】:

我正在渲染这样的一行

`<TableRow
  key=row.name
>
  <TableCell>row.empId</TableCell>
  <TableCell>row.userId</TableCell>
  <TableCell>row.name</TableCell>
  <TableCell>row.hireDate</TableCell>
  <TableCell>row.terDate</TableCell>
  <TableCell>row.empType</TableCell>
  <TableCell>
    <Typography variant="button" color=row.empStatus ? 'primary' : 'error'>
      row.empStatus ? 'Active' : 'Inactive'
    </Typography>' '
  </TableCell>
  <TableCell align="right">
    <IconButton aria-label="view log" onClick=() => setOpen(true)>
      <HistoryIcon fontSize="small" />
    </IconButton>
    <IconButton aria-label="edit">
      <EditIcon fontSize="small" />
    </IconButton>
  </TableCell>
  <div className="overley">
    <p>overlay text</p>
  </div>
</TableRow>`

叠加层具有类似 CSS

`.overley 
    position: absolute;
    background-color: gainsboro;
    opacity: 0.5;
    width: 100%;
  
  .tableRow 
    position: relative;
  `

我期待这样的事情 table

那么如何在不影响表格或行宽和对齐方式的情况下添加覆盖效果或任何显示在行上的 div。

上面的代码在最后添加了一列,如果我给 left : 0,它会移动到屏幕的左侧。有谁知道如何完成这项工作?

【问题讨论】:

【参考方案1】:

我也想这样做,并且能够通过或多或少地执行以下操作来做到这一点:

<TableRow className='row-overlay-hover'>
    <TableCell/>
    ...
    <TableCell/>
    <TableCell>
        <div className='overlay-wrapper'>
            <div className='overlay-content'>
                Overlay content
            </div>
        </div>
    </TableCell>
</TableRow>
.row-overlay-hover td:last-child 
    width: 0;
    padding: 0 !important;

.row-overlay-hover:hover .overlay-content 
    visibility: visible;

.overlay-wrapper 
    position: relative;

.overlay-content 
    visibility: hidden;
    position: absolute;
    right: 0;

注意:

我引用了这个Overlay table cells with two buttons on hover,它的回答指出,并非所有浏览器都支持表格单元格上的position: relative(尽管它是从2012年开始的)所以我选择将我的叠加层包装在一个div中,最后有一个零宽度列表的

【讨论】:

以上是关于如何将叠加层添加到材质 UI 表格行?的主要内容,如果未能解决你的问题,请参考以下文章

如何将箭头添加到材质 UI 弹出框,如 ToolTip

如何给C4D添加多个层遮罩?

如何将内容加载到类似灯箱的叠加层中

如何在 Swift 中使用色调和一些文本向 UIImageView 添加叠加层?

如何在材质ui中为网格项添加新行?

如何更改材质ui选择菜单下拉颜色?