If I grasp your inquiry correctly, it seems you have a parent container with 100% height. Within this container, there is an element that is 20px in height, followed by another element that should expand to the bottom. It would be helpful if you could provide more clarity in your question or perhaps include a code snippet using jsfiddle and/or a screenshot.
Consider this straightforward illustration:
<div class="wrapper">
<div class="header">
Heading
</div>
<div class="stretch">
Stretching content
</div>
</div>
Here are the styles to achieve what I believe you are looking for:
.wrapper {
height: 100%;
}
.header {
height: 20px;
}
.stretch {
height: 100%;
padding-top: 20px;
margin-top: -20px;
}
The 20px of padding is included in the overall 100% height calculation. This means that the actual visible height of your .stretch
element will be exactly 100% - 20px (as desired), but there will be a downward shift of 20px due to the padding. By applying a negative margin equal to the padding size, the element is brought back up by 20px, resulting in the expected height of 100% - 20px.
You can view the implementation in action (I added some color highlights for emphasis and adjusted the body and html height in the example since jsFiddle doesn't handle that automatically, which shouldn't be necessary in your case): http://jsfiddle.net/48aET/