使CSS:“调整大小:水平”在firefox上与Mat-Table一起使用

时间:2019-04-26 09:49:29

标签: html css angular resizable mat-table

我有一个mat-table,想要使列可调整大小,所以我偶然发现了CSS属性“ resize”,该属性非常适合常规HTML表

基本HTML:

 <table id="main_table">
          <tr class="header">
            <td><div class="tableHeaderCellDiv">Tech Name</div></td>
            <td><div class="tableHeaderCellDiv">Name</div></td>
           </tr>
   </table>

CSS:

.tableHeaderCellDiv { resize: horizontal;  overflow:hidden;}

这为标题提供了一个非常不错的框,您可以使用该框来调整列的大小。 但是,当试图将完全相同的东西放到我的桌子上时,拖动框根本没有出现。

<table mat-table [dataSource]="items" class="mat-elevation-z8">
  <ng-container [matColumnDef]="column" *ngFor="let column of displayedColumnsMAT">
    <th mat-header-cell class="custom-mat-header-styling tableHeaderCellDiv" *matHeaderCellDef>{{column}}</th>
  </ng-container>

  <tr mat-header-row class="tableHeaderCellDiv" *matHeaderRowDef="displayedColumnsMAT; sticky: true;" ></tr><!-- for the header row -->
</table>

我已经删掉了两个示例的非标题行,因为它们现在无关紧要。 我还尝试到各处都插入tableHeaderCellDiv(与普通HTML相同的CSS)作为类,以为那是问题所在。

我在做什么错,还是该功能根本无法与Mat-Tables一起使用?

[编辑:] 感谢@KrishnaRathore,我现在知道我的代码(可能)不是问题,而Firefox是问题。如果您对Chrome感到满意,请查看他的答案,它会起作用。

但是,此问题似乎是Mat-Table所特有的,因为我的项目中还有另一个小型HTML表格,可以很好地调整大小。

2 个答案:

答案 0 :(得分:1)

使用此代码

Stackblitz Demo

component.scss / component.css

.tableHeaderCellDiv { 
    resize: horizontal;  
    overflow:hidden;
}

component.html

<table mat-table [dataSource]="dataSource" class="mat-elevation-z8">

    <ng-container [matColumnDef]="column" *ngFor="let column of displayedColumns">
        <th mat-header-cell class="custom-mat-header-styling tableHeaderCellDiv" *matHeaderCellDef>{{column}}</th>
        <td mat-cell *matCellDef="let element">{{element[column]}}</td>
    </ng-container>

    <tr mat-header-row class="tableHeaderCellDiv" *matHeaderRowDef="displayedColumns; sticky: true;"></tr>
    <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>

答案 1 :(得分:0)

我已经做到了(即使在firefox上也可以),但是我可以肯定的是,我之前曾经尝试过,但是后来却没有。

<th mat-header-cell class="custom-mat-header-styling" *matHeaderCellDef><div class="tableHeaderCellDiv">{{column}} </div></th>

所以诀窍是在标头单元格内有另一个div,它可以调整大小,而其余部分则不能调整大小。