Please visit this fiddle to see what I mean -
I have a parent DIV, within that there are two DIVs placed in vertical order. The top DIV should have only the height of its content, whereas the bottom DIV should occupy all remain space of the parent DIV irrespective to content heights, and also shouldn't overlap the parent DIV.
HTML:
<div class="outer">
<div class="inner-title">
THIS IS MY TITLE
</div>
<div class="inner-content">
CONTENT AREA
</div>
</div>
CSS:
html,body
{
height: 100%;
}
.outer
{
background-color:blue;
height: 80%;
}
.inner-title
{
background-color:red;
}
.inner-content
{
background-color:yellow;
height: auto;
}
In short, "inner-content" should occupy all remaining space of "outer" DIV, without overlapping.
Any idea of how to achieve this?
Any help on this much appreciated.
The width property is used to fill a div remaining horizontal space using CSS. By setting the width to 100% it takes the whole width available of its parent. Example 1: This example use width property to fill the horizontal space. It set width to 100% to fill it completely.
Using inline-block property: Use display: inline-block property to set a div size according to its content.
Add display:table;
to parent div and display:table-row;
to child divs
And height:0
to first child div. This takes auto height
html,body{
height: 100%;
}
.outer{
background-color:blue;
height: 80%; border:red solid 2px;
display: table;
width:100%
}
.inner-title{
background-color:red;
display:table-row;
width:100%
}
.inner-content{
background-color:grey;
display:table-row;
width:100%;
height:100%
}
DEMO UPDATED
A newer CSS way would be using flexbox
/*QuickReset*/ *{box-sizing:border-box;margin:0;} html,body{height:100%;}
.flex-col {
display: flex;
flex-direction: column; /* or: flex-flow: column wrap; */
height: 100%;
}
.flex-fill { /* Add this class to the element you want to expand */
flex: 1;
}
<div class="flex-col">
<div style="background:red;"> HEADER </div>
<div class="flex-fill" style="background:yellow;"> CONTENT </div>
<div style="background:red;"> FOOTER</div>
</div>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With