我无法在 angular 中对齐 material 设计卡片
i can't align material design cards in angular
我使用过 ng-flex,因此它们响应迅速。但我想对齐它们,使它们的高度都相同。
how you can see they aren't alinged.
.content {
padding: 16px;
}
.content > mat-card {
width: 200px;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="content">
<div fxLayout="row wrap" fxLayoutGap="16px grid">
<div fxFlex="25%" fxFlex.xs="100%" fxFlex.sm="33%" *ngFor="let manga of mangaList">
<mat-card class="mat-elevation-z4" >
<mat-card-header>
<mat-card-title>{{ manga.title }}</mat-card-title>
</mat-card-header>
<img mat-card-image src="{{ manga.preview }}">
<mat-card-actions>
<button mat-button>Leggi</button>
<button mat-button (click)="updateBookmark(manga)">
<i *ngIf="manga.bookmarked == 'false'; else ifBookmarked" class="fa fa-bookmark-o fa-lg"></i>
<ng-template #ifBookmarked>
<i class="fa fa-bookmark fa-lg"></i>
</ng-template>
</button>
</mat-card-actions>
</mat-card>
</div>
</div>
</div>
给卡片 class 本身一个 maxheight + height 的限制。所以所有卡片的高度都相同。
如果您希望卡片的内容具有相同的高度,您必须对 mat-card-header、图像和 mat-card-actions 的高度进行硬编码。要调节图像高度容器,请在其周围添加 div。类似的东西:
<div fxLayout="row grid">
<mat-card *ngFor="let manga of mangaList">
<mat-card-header>
-- Content --
</mat-card-header>
<div>
<img>
</div>
<mat-card-actions>
-- Content --
</mat-card-actions>
</mat-card>
</div>
Card {
height: 200px;
max-height 200px;
mat-card-header {
height 20px;
max-height 20px;
}
image-div {
height 60px;
max-height 60px;
}
mat-card-actions {
height 20px;
max-height 20px;
}
}
另外我看到3号的标题太长了。如果你想保持标题长度你得调整高度
我使用过 ng-flex,因此它们响应迅速。但我想对齐它们,使它们的高度都相同。 how you can see they aren't alinged.
.content {
padding: 16px;
}
.content > mat-card {
width: 200px;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="content">
<div fxLayout="row wrap" fxLayoutGap="16px grid">
<div fxFlex="25%" fxFlex.xs="100%" fxFlex.sm="33%" *ngFor="let manga of mangaList">
<mat-card class="mat-elevation-z4" >
<mat-card-header>
<mat-card-title>{{ manga.title }}</mat-card-title>
</mat-card-header>
<img mat-card-image src="{{ manga.preview }}">
<mat-card-actions>
<button mat-button>Leggi</button>
<button mat-button (click)="updateBookmark(manga)">
<i *ngIf="manga.bookmarked == 'false'; else ifBookmarked" class="fa fa-bookmark-o fa-lg"></i>
<ng-template #ifBookmarked>
<i class="fa fa-bookmark fa-lg"></i>
</ng-template>
</button>
</mat-card-actions>
</mat-card>
</div>
</div>
</div>
给卡片 class 本身一个 maxheight + height 的限制。所以所有卡片的高度都相同。 如果您希望卡片的内容具有相同的高度,您必须对 mat-card-header、图像和 mat-card-actions 的高度进行硬编码。要调节图像高度容器,请在其周围添加 div。类似的东西:
<div fxLayout="row grid">
<mat-card *ngFor="let manga of mangaList">
<mat-card-header>
-- Content --
</mat-card-header>
<div>
<img>
</div>
<mat-card-actions>
-- Content --
</mat-card-actions>
</mat-card>
</div>
Card {
height: 200px;
max-height 200px;
mat-card-header {
height 20px;
max-height 20px;
}
image-div {
height 60px;
max-height 60px;
}
mat-card-actions {
height 20px;
max-height 20px;
}
}
另外我看到3号的标题太长了。如果你想保持标题长度你得调整高度