Puoi fare tutto tramite percentuali..esempio:
codice:
<style>
*{
margin:0px;
padding:0px;
}
#top{
height:10%;
background:green;
}
#bottom{
height:10%;
background:red;
}
#principale{
background:pink;
min-height:80%;
}
body{
height:100%;
}
</style>
<div id='top'></div>
<div id='principale'></div>
<div id='bottom'></div>
personalmente sono contrario alle percentuali, ma questo è un modo semplice...altrimenti potresti mettere la div bottom e la div top in position fixed e il principale come height 100% con un po' di padding...