Возможен ли список сетки материалов в плитке сетки материалов (вложенные сетки)? - PullRequest
0 голосов
/ 12 сентября 2018

Полагаю, не разрешено помещать сетку материалов в сетку материалов (сетки вложений)?
Может ли кто-нибудь подтвердить мое предположение?
(Я использую угловой материал 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>

Результат должен выглядеть следующим образом (два разных размера желоба):

enter image description here

Зачем мне это? Проект, который я должен реализовать, имеет РАЗЛИЧНЫЕ РАЗМЕРЫ ЖЕЛЕЗА между столбцами: - / Я думал, что сетка в сетке будет разумным решением, но она не работает.

UPDATE: Предлагаемое решение здесь не работает, так как это возможно только в более старом Angular JS Material.

1 Ответ

0 голосов
/ 14 сентября 2018

Перепробовав все, о чем я мог подумать, я пришел к выводу, что материальная сетка в материальной сетке невозможна и, вероятно, концептуально не предназначена для работы (понятно).

Я решил решить мою проблему с помощью 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;
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...