【发布时间】:2017-11-25 12:59:53
【问题描述】:
我正在使用 Angular 4 以及官方的 @angular/material-design 和 @angular/flex-layout API 构建一个 SPA。
我想显示一些项目的变量列表 (app-project-list),我用 Md-Cards (app-project-card) 表示。
在此页面上可以看到我想要的一个完美示例:weo3.com/work
我们的目标是拥有一个响应式卡片列表:
- 在桌面上它们应该被放置在环绕的行中
- 它们之间应该有一些边距
- 如果列表中的最后一张卡片是该行中唯一的一张,则它应该左对齐
- 在较小的屏幕上,列数应该减少
- 在移动设备上(断点为
xs)列表应显示在列中
这是我到目前为止的代码,但它有问题:
//project-list-component
<div fxLayout="row wrap" fxLayoutGap="1em" fxLayoutAlign="center center" fxLayout.lt-sm="column">
<app-project-card *ngFor="let p of projects | async" [project]="p">
</app-project-card>
</div>
//project-list-component.css
app-project-card {
margin-top: 1em;
}
//project-card-component starts with md-card as root element, nothing special here
<md-card>
...
</md-card>
问题
- 在桌面上和一行中的所有项目看起来都很好
- 调整大小后,最后一项会被包裹在新行中并居中对齐,但我需要在行首对齐Example
- 包装一个或多个项目时,它们不会在第一行下方对齐,而是向右偏移 1em(参见第一张图片)
- 当屏幕变小时,卡片并没有填满所有可用空间,左右有大量空白
我在这里查看了所有三个类似的问题,但没有一个满足要求(请参阅this angularJS question 和 this angular2 question)。非常感谢任何帮助!
【问题讨论】:
标签: angular angular-material angular-flex-layout