Я пытаюсь создать простую страницу, используя Angular Flex Layout.(На самом деле я удаляю Bootstrap из приложения, потому что я использую Angular Material и чувствую, что смешивать их нехорошо).Моя цель состоит в том, чтобы настроить главную страницу с помощью «Макета Святого Грааля», просто имея верхний и нижний колонтитулы, содержимое и нижний колонтитул.
|------------------------------------|
| Header |
|------------------------------------|
| |
| Content |
| |
|------------------------------------|
| Footer |
|------------------------------------|
Ниже приведен код
app.component.html
<div class="main-container" fxLayout="column">
<div fxFlex="none">
<app-header></app-header>
</div>
<div fxFlex>
<router-outlet></router-outlet>
</div>
<div fxLayout="row" fxLayoutAlign="start end">
<div fxFlex>
<app-footer></app-footer>
</div>
</div>
</div>
app.component.css
.main-container {
min-height: 100vh;
border:1px solid black;
}
home.component.html
<div>
home works!
</div>
home.component.css
div {
margin: 1px 0px 1px 0px;
padding: 1px;
border: 1px solid blue;
height: 100%;
}
Я ожидал, что домашний компонент занимает 100% высоты родителя, но, как мы видим по синемурамка на скриншоте чуть ниже не отвечает на это.

Элемент div home-component вставляется под углом с ожидаемым элементом, чтоне имеет стайлинга.Но это ни в коем случае не должно влиять на дочерние элементы.
Если я устанавливаю высоту div на home-компоненте, скажем, 200px (height: 200px), то он увеличивается, но мне нужно, чтобы он занимал 100%родительский элемент определен в app.component-html.
Другой подход
Я пытался не принимать во внимание элемент (аналогичный код был заменен наdiv с идентификатором «content»), но результат тот же:
app-component.html
<div class="main-container" fxLayout="column" fxLayoutAlign="start stretch">
<div fxFlex="none">
<app-header></app-header>
</div>
<div id="content" fxFlex fxFlexAlign="stretch" fxLayout="row" fxLayoutAlign="start center" style="height: 100%">
<div fxFlex="auto" style="height: 100%; border: 1px solid black; padding: 2px">
col 1
</div>
<div fxFlex="4 0 auto" style="height: 100%; border: 1px solid black; padding: 2px">
col 2
</div>
</div>
<div fxLayout="row" fxLayoutAlign="start end">
<div fxFlex>
<app-footer></app-footer>
</div>
</div>
</div>
Лучшее, чего удалось добиться, - это центрироватьdiv с идентификатором «content», но он не занимает 100% высоты своего родителя, как показано на рисунке ниже:
Я быложидая, что fxFlexAlign = "stretch" или даже fxLayoutAlign = "start stretch" вместо fxLayoutAlign = "start center" в div "content" заставит его занять высоту 100%.
Может кто-нибудь заметить и /или объясните мне, что я делаю не так?Это хороший подход?Есть ли лучший или умный способ сделать это?
Я использую официальную документацию https://github.com/angular/flex-layout/wiki/fxFlex-API
Может кто-нибудь указать мне пример в интернете?Я не смог найти его с помощью Angular Flex Layout.
Спасибо