I was reading this answer as it seems the most relevant for what I wish to do, but it doesn't seem to work when the body element is an overflow container.
Specifically in my case I have a dynamically sized header and a body. I would like the body to take up the remaining screen height. Normally this would be trivial but the body is an overflow one, and apparently this complicates things. I've included a reproduction of the problem below:
html, body {
height: 100%;
margin: 0;
}
.box {
display: flex;
flex-flow: column;
height: 100%;
}
.header {
flex: 0 1 auto;
}
.content {
flex: 1 1 auto;
background-color: #ddd;
height: 100%;
}
.items {
overflow-y: auto;
height: 100%;
}
<div class="box">
<div class="header">
<div class="header-item">header item</div>
<div class="header-item">header item</div>
<div class="header-item">header item</div>
</div>
<div class="content">
fills remaining space
<div class="items">
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
<div class="item">content item</div>
</div>
</div>
</div>
As you can see when you run it, there are two scrollbars, where there should only be one (for items
). Is it possible to have content
take up the remaining screen height such that there is no document scrollbar?