您可以使用材质Grid-List,它允许自定义 col-spans 并在宽度更改时为更改设置动画。
我改编了网站上的示例并添加md-card
了内容。确保添加layout-fill
到md-card
. 您可以根据您的列数轻松调整样本。
http://codepen.io/anon/pen/QypjWY
我还改编了你的 5 张卡片样本。您需要知道卡片的高度才能使用 Grid-List,但您可以轻松地在小屏幕上实现 100% 的高度。您可以对行使用比率或固定 CSS 高度,然后以灵活的方式显示内容是您的卡片工作。
<md-grid-list ng-app="app" layout-fill flex
md-cols-sm="1"
md-cols-md="2"
md-cols-gt-md="5"
md-row-height-sm="100%"
md-row-height="600px"
md-gutter="8px">
<md-grid-tile ng-repeat="i in [1,2,3,4,5] track by $index">
<md-card layout-fill>
http://jsfiddle.net/2afaok1n/34/
编辑:
如果您正在寻找某种交错网格,那么您必须添加一个库:angular-deckgrid,它只提供网格布局,内容中的所有内容都是 angular-material。与angular-masonry不同,这个库没有任何依赖关系。如果您不担心添加 jQuery 等,那么您也可以使用 angular-masonry。
<div ng-app="app" ng-controller="DeckController" flex layout="column">
<deckgrid class="deckgrid" flex source="data">
<md-card>
甲板布局的重要部分是CSS 配置。使用它可以配置列数及其宽度。我使用媒体查询来获取角度材料sm
断点以切换到单列布局。
.deckgrid::before {
content: '4 .column.column-1-4';
font-size: 0;
visibility: hidden;
}
.deckgrid .column {
float: left;
}
.deckgrid .column-1-4 {
width: 25%;
}
.deckgrid .column-1-1 {
width: 100%;
}
@media screen and (max-width: 960px) {
.deckgrid::before {
content: '1 .column.column-1-1';
}
}
http://jsfiddle.net/2afaok1n/39/
编辑2:
还有一个不需要 jQuery 的砌体版本和一个简单的指令来使用它:angular-masonry-directive。这是一个示例,它的工作原理与另一个类似。
http://jsfiddle.net/xjnp97ye/1/