我在我的网站上添加了一个棱角material 表.我使用了有Angular 的页面(link to the examples)上的例子. 表格行应该是可展开的,就像Angular 页面上的"表格可展开行"示例中的那些一样.但是,折叠的行在显示行的一小部分可展开部分之间仍有差距 (picture with the gaps for visualisation).
我将过滤函数和删除和添加列函数结合在一起,也是从Angular material 示例中,到我的表中.所以这可能会造成造型上的问题?
我判断了浏览器控制台,问题是表格行的填充,在bootstrap.css中设置为0.75rem
.但是,如果我将行的填充设置为0,则正常的行看起来不太好.必须有某种方法来只消除丑陋的差距.
这是包含可展开行的动画部分的Angular 组件
@Component({
selector: 'app-compare-page',
templateUrl: './compare-page.component.html',
styleUrls: ['./compare-page.component.css'],
animations: [
trigger('detailExpand', [
state('collapsed', style({height: '0px', minHeight: '0'})),
state('expanded', style({height: '*'})),
transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
]),
]
})
具有类example-element-diagram
的Component.html
、div
保存行的可展开部分的html元素,并且为了更好地进行概述而被省略
<table mat-table [dataSource]="tableData" multiTemplateDataRows class="mat-elevation-z8">
<div *ngFor="let column of displayedColumns; track column">
<ng-container [matColumnDef]="column">
<th mat-header-cell *matHeaderCellDef> {{column}} </th>
<td mat-cell *matCellDef="let element"> {{element[column]}} </td>
</ng-container>
</div>
<ng-container matColumnDef="expand">
<th mat-header-cell *matHeaderCellDef aria-label="row actions"> </th>
<td mat-cell *matCellDef="let element">
<div *nfIf="expandedElement === element; else elseBlock ">
<button mat-icon-button aria-label="expand row" (click)="(expandedElement = expandedElement === element ? null : element); $event.stopPropagation()">
<mat-icon>keyboard_arrow_up</mat-icon>
</button>
</div>
<ng-template #elseBlock>
<button mat-icon-button aria-label="expand row" (click)="(expandedElement = expandedElement === element ? null : element); $event.stopPropagation()">
<mat-icon>keyboard_arrow_down</mat-icon>
</button>
</ng-template>
</td>
</ng-container>
<ng-container matColumnDef="expandedDetail">
<td mat-cell *matCellDef="let element" [attr.colspan]="columnsToDisplayWithExpand.length">
<div class="example-element-detail"
[@detailExpand]="element == expandedElement ? 'expanded' : 'collapsed'">
<div class="example-element-diagram">
</div>
</div>
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="columnsToDisplayWithExpand"></tr>
<tr mat-row *matRowDef="let element; columns: columnsToDisplayWithExpand;"
class="example-element-row"
[class.example-expanded-row]="expandedElement === element"
(click)="expandedElement = expandedElement === element ? undefined : element">
</tr>
<tr mat-row *matRowDef="let row; columns: ['expandedDetail']" class="example-detail-row"></tr>
</table>
我try 了填充,但没有成功,我的css文件看起来仍然与在线Angular 示例中提供的文件一模一样.