Каким будет правильный способ гарантировать, что квадратное содержимое веб-страницы отображается «высоким»? Например, если ваш телефон или монитор находится в портретном режиме, тогда контент будет занимать всю ширину, но если он находится в альбомном режиме, вы получите боковые панели на стороне содержимого, так что основное тело будет квадратным , заполняя всю высоту.
Я сделал это с помощью JavaScript, обработав событие resize, проверив высоту и ширину контейнера и вычислив ширину и поля вручную. Но я уверен, что есть лучший способ, может быть, даже чистое решение CSS3.
Глядя на отзывчивое руководство Google , я догадываюсь, что, возможно, подойдет пользовательская таблица стилей, но я не могу понять, как сделать так, чтобы содержимое всегда заполняло либо высоту, либо ширину.
Итак, вот как это будет выглядеть в портретном и ландшафтном режимах, где красная часть - это основная часть, а синяя - дополнительное пространство для заполнения:
![enter image description here](https://i.stack.imgur.com/MjYyX.png)
В настоящее время я пробую Angular Material, поэтому, если есть решение, специфичное для этой среды, это тоже сработает.
Вот как будет выглядеть макет внутри тела - плитки сетки углового материала - это каждый квадрат, поэтому сетка имеет размер 2x2 с 4 квадратами одинакового размера, что означает, что все тело будет квадратным - и я хочу, чтобы сетка 2x2 была такой же как можно больше без прокрутки:
<body>
<!-- if necessary -->
<div id="left-side"></div>
<div id="main-container">
<mat-grid-list cols="2" rowHeight="1:1">
<mat-grid-tile>First square</mat-grid-tile>
<mat-grid-tile>Second square</mat-grid-tile>
<mat-grid-tile>Third square</mat-grid-tile>
<mat-grid-tile>Fourth square</mat-grid-tile>
</mat-grid-list>
</div>
<!-- if necessary -->
<div id="right-side"></div>
</body>