css grid auto content with overflow
HTML
<div class="container">
<div class="header">header</div>
<div class="side">side</div>
<div class="content">
<div class="container container__inner">
<div class="header header__inner">header</div>
<div class="side side__inner">side</div>
<div class="content content__inner overflow">
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
<div class="content-item"></div>
</div>
<div class="footer footer__inner">footer</div>
</div>
</div>
<div class="footer">footer</div>
</div>
CSS
body {
display: block;
height: 100vh;
width: 100%;
background-color: white;
margin: 0;
}
.container {
max-height: 100%;
display: grid;
grid-template-areas: "header header" "side content" "footer footer";
grid-template-columns: 50px auto;
grid-template-rows: min-content minmax(min-content, max-content) min-content;
}
.header {
grid-area: header;
background-color: rgba(255, 255, 0, 0.3);
}
.side {
grid-area: side;
background-color: rgba(0, 255, 0, 0.3);
}
.content {
grid-area: content;
background-color: rgba(0, 0, 255, 0.3);
}
.content__inner {
max-height: calc(100vh - 96px); /* added max height */
}
.overflow {
overflow: auto;
}
.content-item {
height: 20px;
margin-bottom: 5px;
background-color: white;
}
.footer {
grid-area: footer;
background-color: rgba(255, 0, 255, 0.3);
}