Flex в основном используется в качестве однонаправленного макета. Хотя он может использоваться как у вас, лучше держать его сосредоточенным на одной строке в вашем случае. Просто переместите .header
за пределы .wrapper
:
<body>
<header class="header">
<nav class="navbar navbar-light bg-light">
<span class="navbar-brand mb-0 h1">Navbar</span>
</nav>
</header>
<div class="wrapper">
<aside class="sidebar">Aside 1</aside>
<article class="main">
<app-root></app-root>
</article>
</div>
</body>
Теперь просто установите размер по умолчанию для боковой панели и размер жидкости для вашей статьи:
.wrapper {
display: flex;
}
.sidebar {
flex: 0 0 300px; /* will not grow, will not shrink, will have starting width of 300px */
}
.main {
flex: 1 1 0; /* will grow, will shrink, will have starting width of 0 - aka it will fill all space available (page width minus 300px) */
}
Затем вы можете использовать медиазапросы, чтобы изменить размер .sidebar
по умолчанию на экранах разных размеров, и .main
адаптируется для заполнения всего доступного пространства.