【发布时间】:2018-07-04 19:21:54
【问题描述】:
我有一个 mat-grid-list,其中包含 n 个 mat-card 项目。在网格的底部,我想添加我自己的位于页面中心的自定义分页器(出于各种原因,如果可能的话,我不想使用mat-paginator)。
我尝试简单地在mat-grid-list 元素下方添加一个<div> 元素并将边距设置为0 auto;(这是我通常将div 居中的做法)但这似乎不是工作(分页器仍然顽固地左对齐)。
我可以向出现在所有其他图块之后的mat-grid-list 添加一个新图块,并将其[colspan] 设置为等于列数。当我这样做时,我得到了一个完美居中的分页器,除了有大量多余的高度(大概是因为它使用了其他相当大的 mat-grid-tile 项目的高度)。
有没有办法:a)让分页器在自己的div 中居中对齐或b)更改单个mat-grid-tile 的rowHeight,这样我就不会得到一个荒谬的数量分页器周围的空白区域?标记如下:
mat-grid-list 与div 中的分页器
<div *ngIf="dataModel" class="container page-content">
<mat-grid-list cols="5">
<mat-grid-tile *ngFor="let page of dataModel.pages" [colspan]="1" [rowspan]="1">
<mat-card >
<mat-card-header>
<mat-card-title>{{ page.title }}</mat-card-title>
</mat-card-header>
<img mat-card-image src="{{ this.imageBase + page.id.trim() + '.jpg' }}" alt="Photo of page" />
<mat-card-content>
{{ page.matches }}
</mat-card-content>
<mat-card-actions>
<button mat-button routerLink="{{ '/page/' + page.id.trim() }}">VIEW</button>
</mat-card-actions>
</mat-card>
</mat-grid-tile>
</mat-grid-list>
<div class="paginator">
<button mat-icon-button [disabled]="this.currentIndex == 1" (click)="onNavClick(this.currentIndex - 1)" >
<mat-icon aria-label="Previous">navigate_before</mat-icon>
</button>
<ng-container *ngFor="let item of this.getPageArray(); let i = index;">
<button mat-mini-fab color="primary" (click)="onNavClick(i + 1)">{{ i + 1 }}</button>
</ng-container>
<button mat-icon-button [disabled]="this.currentIndex == this.dataModel.totalPageResults" (click)="onNavClick(this.currentIndex + 1)">
<mat-icon aria-label="Next">navigate_next</mat-icon>
</button>
</div>
</div>
.paginator 类的 CSS
.paginator {
margin: 0 auto;
padding-top: 20px;
}
(注意:我也尝试将display 设置为inline-block 并将width 设置为100%,但均未成功)。
mat-grid-list with paginator in a separatemat-grid-tile`
<div *ngIf="dataModel" class="container page-content">
<mat-grid-list cols="5">
<mat-grid-tile *ngFor="let page of dataModel.pages" [colspan]="1" [rowspan]="1">
<mat-card >
<mat-card-header>
<mat-card-title>{{ page.title }}</mat-card-title>
</mat-card-header>
<img mat-card-image src="{{ this.imageBase + page.id.trim() + '.jpg' }}" alt="Photo of page" />
<mat-card-content>
{{ page.matches }}
</mat-card-content>
<mat-card-actions>
<button mat-button routerLink="{{ '/page/' + page.id.trim() }}">VIEW</button>
</mat-card-actions>
</mat-card>
</mat-grid-tile>
<mat-grid-tile [colspan]="5">
<button mat-icon-button [disabled]="this.currentIndex == 1" (click)="onNavClick(this.currentIndex - 1)" >
<mat-icon aria-label="Previous">navigate_before</mat-icon>
</button>
<ng-container *ngFor="let item of this.getPageArray(); let i = index;">
<button mat-mini-fab color="primary" (click)="onNavClick(i + 1)">{{ i + 1 }}</button>
</ng-container>
<button mat-icon-button [disabled]="this.currentIndex == this.dataModel.totalPageResults" (click)="onNavClick(this.currentIndex + 1)">
<mat-icon aria-label="Next">navigate_next</mat-icon>
</button>
</mat-grid-tile>
</mat-grid-list>
</div>
【问题讨论】:
标签: html css angular angular-material