1

有没有办法使用 CSS 制作具有粘性第一列的 Angular Material?

这里准备编辑Stackblitz 代码

我试图调整这个解决方案https://jsfiddle.net/zinoui/BmLpV/但由于某些原因,第一列被从表中抛出并且它失去了样式。

<div class="zui-wrapper">
    <div class="zui-scroller">
        <table class="zui-table">
            <thead>
                <tr>
                    <th class="zui-sticky-col">Name</th>..........
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td class="zui-sticky-col">DeMarcus Cousins</td>
.......
                <tr>
            </tbody>
        </table>
    </div>
</div>


.zui-scroller {
    margin-left: 141px;
    overflow-x: scroll;
    overflow-y: visible;
    padding-bottom: 5px;
    width: 300px;
}
.zui-table .zui-sticky-col {
    border-left: solid 1px #DDEFEF;
    border-right: solid 1px #DDEFEF;
    left: 0;
    position: absolute;
    top: auto;
    width: 120px;
}
4

5 回答 5

2

使用 Angular 材料版本 6,这变得很容易。

您可以sticky在表格左侧需要粘贴的列上添加标签,在表格stickyEnd右侧添加标签。

这是一个Stackblitz 示例

于 2018-07-31T09:28:37.550 回答
2
td:first-child, th:first-child {
  position:sticky;
  left:0;
  z-index:1;
  background-color:grey;
}
于 2019-07-29T07:19:35.893 回答
0

我已经使用stickyEnd 来实现这一点,如下所示。

 <ng-container matColumnDef="12" class="white-bg" stickyEnd>
</ng-container>
于 2018-11-12T10:50:45.800 回答
0

.mat-table-sticky:first-child {
    border-right: 1px solid #e0e0e0;
}
<ng-container
            matColumnDef="name"
            sticky
>
</ng-container>


`

.mat-table-sticky:first-child {
    border-right: 1px solid #e0e0e0;
}

`


于 2019-11-08T15:43:25.483 回答
-1

它对我有用;

` :host ::ng-deep .mat-cell:first-child, .mat-h​​eader-cell:first-child {

位置:粘性;

位置:-webkit-sticky;

对:0;

z-索引:1;

背景:继承;

左边框:1px 纯灰色;

} `

于 2021-08-05T16:56:37.730 回答