Я строю макет для своего сайта, для которого я использую css-grid. Я открыт для использования flexbox, если это решает мою задачу. У меня есть заголовок, нижний колонтитул, левый виджет, правый виджет и основной раздел (div). Я хочу, чтобы макет занимал весь экран. Если основной раздел расширяется в зависимости от его содержимого, я хочу, чтобы левый и правый виджеты соответствовали его размеру.
P.S. Левый и правый виджеты могут содержать больше содержимого, чем основное содержимое, в этом случае я хочу использовать полосу прокрутки в левом и правом виджетах
Я пробовал это с использованием css-grid, но левый правый и основной раздел принимают размер наибольшего div.
.container {
display: grid;
grid-template-areas: 'header header header' 'left main right' 'footer footer footer';
grid-template-rows: 3vh minmax(93vh, auto) 3vh;
}
.header {
grid-area: header;
border: 1px solid black;
background: blue;
}
.leftWidget {
grid-area: left;
border: 1px solid black;
background: red;
}
.rightWidget {
grid-area: right;
border: 1px solid black;
background: green;
}
.main {
grid-area: main;
border: 1px solid black;
background: yellow;
}
.footer {
grid-area: footer;
border: 1px solid black;
background: blue;
}
<div class=container>
<div class=header>
</div>
<div class=leftWidget>
</div>
<div class=main>
</div>
<div class=rightWidget>
</div>
<div class=footer>
</div>
</div>