【发布时间】:2016-03-20 10:45:18
【问题描述】:
我正在尝试创建一个 Angular-Material 卡片网格,其行为有点像 Bootstrap 网格。理想情况下,小屏幕宽度的卡片将是全宽的,并在较大的断点处跳转到两列。
问题在于 A-M 为每张卡片创建列。我还没有弄清楚如何为每个断点指定列数。
这是我使用的标记的基础,它在第一个断点处将卡片布局从行变为列:
<div ng-app layout="column" layout-gt-sm="row" class="layout-sm-column layout-row">
<div flex class="flex" ng-repeat="i in [1,2,3,4,5] track by $index">
<md-card>
已经有一个similar question on SO,但接受的答案并不令人满意,因为它使用自定义 CSS 并且卡片不是流体宽度。我没有找到其他类似的例子。
我想我可以用 Angular 循环每两张卡片并创建堆叠的集合,但这似乎不必要地麻烦。我不得不认为 Material 提供了更好的解决方案。此外,此类解决方案会在卡片高度不同的页面中留下空白。 Material 似乎适合于类似 Masonry 的 flex 布局,我想坚持下去。
谢谢。
【问题讨论】:
-
可能只使用 css,即使是砖石外观/风格。 designshack.net/articles/css/masonry/#bsap_1610
-
问题是如何使用 Angular Material 来做到这一点。我对其他库和技术有很多经验。不过,这似乎是 A.M. 的不足,除非我遗漏了什么。
-
我遇到了同样的问题,并且没有本地解决方案可以为您制作砖石类型的网格。 AM 的响应来自 flexbox 容器,而不是指令级别,因此它们之间并没有真正的交流。我实际上按照您自己的建议创建了堆叠集合。
-
使用 css3,您可以在 md 卡上定义列:3,媒体查询宽度列:2,最后是移动:列:1,例如
标签: angularjs responsive-design material-design angularjs-material