Son*_*nul 8 css html-table angular-material angular angular5
默认情况下,如果Angular Material Table从包含它的单元格中溢出,则将内容放在下面的新行中。我试图对其进行设置,以使溢出的文本被截断为“ ...”。我现在拥有的代码不会截断内容并将其显示在一行中,直到它从父级溢出为止<div>
我之所以使用<table mat-table>而不是<mat-table>因为它具有根据Angular Material网站中所述的内容根据内容调整大小的列。我尝试创建的表具有响应能力,并根据其父级的大小调整自身大小<div>
HTML:
<div class="table-content">
<table mat-table [dataSource]="dataSource" class="table-container">
<ng-container [matColumnDef]="item" *ngFor="let item of displayedColumns">
<th mat-header-cell *matHeaderCellDef>{{item}} </th>
<td mat-cell *matCellDef="let element">
<div class="table-data-content">
<span>{{element[item]}}</span>
</div>
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns;"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.table-container {
position: absolute;
width: 100%;
height: 100%;
}
.table-data-content {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
Run Code Online (Sandbox Code Playgroud)
角度组件中使用的示例数据:
dataSource = [
{ Name: "Some file name that is very long", Date: '08/30/2017', Uploader: 'Some uploader name that is very long'},
{ Name: "Some file name that is very long", Date: '08/30/2017', Uploader: 'Some uploader name that is very long'}
];
displayedColumns = ['Name', 'Date', 'Uploader'];
Run Code Online (Sandbox Code Playgroud)
我该如何解决才能在表格中正确使用省略号?
更新: 如果添加以下CSS,省略号将起作用,但我仍然不确定为什么。
td {
max-width: 0px;
}
Run Code Online (Sandbox Code Playgroud)
但是,此方法破坏了Angular Material Table根据内容的长度有效分配每一列的宽度的方式,这样当另一列仍有大量空白空间时,内容将被截断。有更好的解决方案吗?
第一个问题是,您要将宽度和高度应用于“表内容”,而是需要直接将其应用于表标签。
尝试这个:
table {
width: 100%;
table-layout: fixed;
}
th, td {
overflow: hidden;
width:auto;
text-overflow: ellipsis;
white-space: nowrap;
}
Run Code Online (Sandbox Code Playgroud)
在表格标签上使用table-layout:应用了fixed,内容不再决定布局,而是浏览器使用表格第一行中定义的宽度来定义列宽。
| 归档时间: |
|
| 查看次数: |
5206 次 |
| 最近记录: |