角度材质:嵌套网格

Posted

技术标签:

【中文标题】角度材质:嵌套网格【英文标题】:Angular Material: Nested grid 【发布时间】:2015-12-29 16:30:26 【问题描述】:

我目前正在将 Bootstrap 用于 Web 应用程序,但想切换到 Angular Material。现在我正在玩网格。

我有三重嵌套网格结构。我认为孩子们的显示不正确,或者至少我没有对它们进行编程以正确显示。我希望它们不要垂直居中,但我不知道它们为什么会这样。

此外,我希望grid-title 的标题不会干扰子grid-list(我希望子grid-listgrid-title-header 下方开始)。 “最老”的父级页脚也是如此。

Angular Material site 有很好的文档,但不涉及嵌套网格。

Here is a plnkr.

<body ng-app="app">
    <md-grid-list md-cols-sm="1" md-cols-md="2" md-cols-gt-md="6"
        md-row-height-gt-md="1:1" md-row- md-gutter="8px"
        md-gutter-gt-sm="4px" class="gridList">
        <md-grid-tile md-rowspan="1" md-colspan="1" md-colspan-sm="1" class="gridTile">
            <md-grid-list flex="" md-cols-sm="2" md-cols-md="4" md-cols-gt-md="6"
                md-row-height-gt-md="1:1" md-row->
                <md-grid-tile md-rowspan="2" md-colspan="1" class="flexTile">
                    <md-grid-tile-header><h4>Sub-cluster Title</h4></md-grid-tile-header>
                    <md-grid-list flex="" md-cols-sm="1" md-cols-md="2" md-cols-gt-md="3"
                        md-row->
                        <md-grid-tile md-colspan="1" md-rowspan="2" class="instanceTile">
                            ID
                        </md-grid-tile>
                    </md-grid-list>
                </md-grid-tile>
            </md-grid-list>
            <md-grid-tile-footer><h3>Cluster name</h3></md-grid-tile-footer>
        </md-grid-tile>
    </md-grid-list>
  </body>

到目前为止,我真的很喜欢 Material Design,并且相信它是响应式网页设计的未来。我认为越来越多的网站将使用它来代替 Bootstrap(Bootstrap 的 JS 组件完全依赖于 jQuery,除非您使用的是 AngularUI 之类的东西),所以我想学习如何正确使用它。

【问题讨论】:

【参考方案1】:

我相信 Angular Material 网站缺少有关此布局指令的文档,但 layout-fill 正是我想要的。

Here's an updated plnkr.

只需在嵌套网格列表中定义layout-fill

<md-grid-list flex md-cols-sm="1" md-cols-md="2" md-cols-gt-md="6"
    md-row-height-gt-md="1:1" md-row- md-gutter="8px"
    md-gutter-gt-sm="4px" class="gridList" layout="row">
    <md-grid-tile md-colspan="1" md-colspan-sm="1" class="gridTile">
        <md-grid-list flex md-cols-md="6" md-row-height-md="1:1" md-gutter="4px"
          md-rows-md="4" layout-fill>
          <md-grid-tile md-colspan="1" md-rowspan="1"  layout="col" 
            class="flexTile">
            Tile
          </md-grid-tile>
        </md-grid-list>
        <md-grid-tile-footer><h3>Cluster name</h3></md-grid-tile-footer>
    </md-grid-tile>
</md-grid-list>

然后放大...

<md-grid-list flex md-cols-md="6" md-row-height-md="1:1" md-gutter="4px"
  md-rows-md="4" layout-fill>
  <md-grid-tile md-colspan="1" md-rowspan="1"  layout="col" 
    class="flexTile">
    Tile
  </md-grid-tile>
</md-grid-list>

此解决方案不包括平铺页眉和页脚的解决方案,但我想您只需定义某种定位即可使其正常工作。

【讨论】:

以上是关于角度材质:嵌套网格的主要内容,如果未能解决你的问题,请参考以下文章

Unity 网格合并

如何使用材料角度将嵌套的json数组显示到html表中

将角度/材质包更新到最新版本后,角度材质自动完成组件不显示项目

text 将角度材质库添加到角度

剑道列过滤器内的角度材料日期选择器问题

markdown 角度 - 材质 - 如何覆盖材质按钮样式