How to stretch div height to fill parent div - CSS
I have a page with divs like below
<div id="container">
<div id="A"></div>
<div id="B">
<div id="B1"></div>
<div id="B2"></div>
</div>
<div id="C"></div>
<div id="D"></div>
</div>
with styling as;
html, body {
margin: 0;
padding: 0;
border: 0;
}
#B, #C, #D {
position: absolute;
}
#A{
top: 0;
width: 100%;
height: 35px;
background-color: #99CC00;
}
#B {
top: 35px;
width: 200px;
bottom: 35px;
background-color: #999999;
z-index:100;
}
#B2 {
margin-top: -35px;
bottom: 0;
background-color: #FFFFFF;
width: 200px;
overflow: scroll;
}
#B1 {
height: 35px;
width: 35px;
margin-left: 200px;
background-color: #CC0066;
}
#C {
top: 35px;
left: 200px;
right: 0;
bottom: 35px;
background-color: #CCCCCC;
}
#D {
bottom: 0;
width: 100%;
height: 35px;
background-color: #3399FF;
}
See the layout / screenshot below;
I want to adjust the height of div B2
to fill (or stretch to) entire div B
(marked with a green border) and don't want to cross footer div D. Here is a working fiddle demo(updated). How can I solve this??
Simply add height: 100%;
onto the #B2
styling. min-height
shouldn't be necessary.
Suppose you have
<body>
<div id="root" />
</body>
With normal CSS, you can do the following. See a working app https://github.com/onmyway133/Lyrics/blob/master/index.html
#root {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
}
With flexbox, you can
html, body {
height: 100%
}
body {
display: flex;
align-items: stretch;
}
#root {
width: 100%
}