| 
	
 | 
 Posted by Ben C on 09/28/07 07:30 
On 2007-09-23, julian.bash <misteriousj@googlemail.com> wrote: 
> On Sep 23, 11:38 pm, Bergamot <berga...@visi.com> wrote: 
>> julian.bash wrote: 
>> 
>> > #middle { height:100%; margin-top:100px; margin-bottom:100px; } 
>> 
>> Wouldn't that would make the total height 100% plus 200px? 
>> 
>> -- 
>> Berg 
> 
> You're right, this works for me: 
> 
> body { margin:0; } 
> div { position:absolute; width:100%; } 
> #top { height:100px; } 
> #middle { top:100px; bottom:100px; } 
> #middle { height:expression(document.body.clientHeight-100); } 
 
That "expression" thing is completely non-standard. 
 
> #bottom { height:100px; bottom:0; } 
> #bottom { margin-top:expression(document.body.clientHeight-100); } 
 
And that one isn't necessary anyway. 
 
Just make middle position absolute as well and give it top: 100px, 
bottom: 100px and height: auto. 
 
Make body (or some wrapper div) position: relative, and don't bother 
with width:100%. Then you will get the width you want regardless of 
margin, padding and borders. Tip: width:100% is rarely necessary, if you 
find yourself writing it ask why. 
 
But latching things onto the bottom of the viewport like this doesn't 
work well when the viewport is resized. What's the browser supposed to 
do? Annoyingly reflow the whole page or leave the "footer" half-way up 
the page at its new size? 
 
Much better to let the bottom of the page just be at the bottom. Locate 
things only at the top and left (or top and right if it's a rtl page) 
and let the right and bottom do what they want.
 
  
Navigation:
[Reply to this message] 
 |