5

我猜,不允许在材质网格(嵌套网格)中放置材质网格?
有人可以证实我的假设吗?
(我正在使用 Angular Material 6。)

<mat-grid-list cols="6" gutterSize="32px">
    <mat-grid-tile [colspan]="3">
        left
        <mat-grid-list cols="3" gutterSize="8px">
            <mat-grid-tile>1</mat-grid-tile>

            <mat-grid-tile [colspan]="2">2</mat-grid-tile>

            <mat-grid-tile [colspan]="3">3</mat-grid-tile>
        </mat-grid-list>
    </mat-grid-tile>

    <mat-grid-tile [colspan]="3">
        right
        <mat-grid-list cols="3" gutterSize="8px">
            <mat-grid-tile>4</mat-grid-tile>

            <mat-grid-tile [colspan]="2">5</mat-grid-tile>

            <mat-grid-tile [colspan]="3">6</mat-grid-tile>
        </mat-grid-list>
    </mat-grid-tile>
</mat-grid-list>

结果应如下所示(两种不同的装订线尺寸):

在此处输入图像描述

我为什么要这个?我必须实现的设计在列之间具有不同的 GUTTER SIZES :-/ 我认为网格中的网格将是一个聪明的解决方案,但它不起作用。

更新:此处建议的解决方案不起作用,因为这仅在较旧的 Angular JS材料中才有可能。

4

1 回答 1

4

在尝试了我能想到的一切之后,我得出了结论,材料网格中的材料网格是不可能的,并且可能在概念上并不意味着工作(可以理解)。

我决定使用CSS 网格( https://www.w3schools.com/css/css_grid.asp ) 来解决我的问题。这有效(到目前为止):

<mat-grid-list cols="2" rowHeight="fit" gutterSize="32px">
<mat-grid-tile>
    <div class="css-grid">
        <div class="css-grid-tile top-left">
        </div>
        <div class="css-grid-tile top-right">
        </div>
        <div class="css-grid-tile bottom">
        </div>
    </div>
</mat-grid-tile>

<mat-grid-tile>
    <div class="css-grid">
        <div class="css-grid-tile top-left">
        </div>
        <div class="css-grid-tile top-right">
        </div>
        <div class="css-grid-tile bottom">
        </div>
    </div>
</mat-grid-tile>

.css-grid {
  display: grid;
  grid-gap: 8px;
  grid-template-columns: 33% 67%; // two columns
  grid-template-rows: 33% 67%; // two rows
  height: 100%;
  width: 100%;

  .css-grid-tile {
    &.top-left {
      grid-column: 1 / 2;
    }

    &.top-right {
      grid-column: 2 / 3;
    }

    &.bottom {
      grid-column: 1 / 3;
    }
  }
}
于 2018-09-14T11:13:41.580 回答