tags:

views:

1341

answers:

3

I'm looking for a way to make the div that contains my main page content to expand to fit the space left after adding my header and footer. The HTML is laid out like so:

<div id="wrapper">
    <div id="header-wrapper">
        <header>
            <div id="logo-bar"></div>
        </header>
        <nav></nav>
    </div>
    <div id="content"></div>
</div>


<div id="footer-wrapper">
    <footer></footer>
</div>

It's designed so that the footer is always past the bottom of the page by setting the min-height of #wrapper to 100%. The problem is that #content doesn't expand to fill the empty space inside the #wrapper, making it difficult to get the look I want. How can I make it do that?

+2  A: 

EDIT:
Why not use top and bottom. Here's a full example.
You can tweak the top and bottom values, to optimize your header/footer placement.

<html>
 <head>
  <style type="text/css">
   BODY {
     margin: 0;
     padding: 0;
   }

   #wrapper {
     position: relative;
     height: 100%;
     width: 100%;
   }

   #header-wrapper {
     position: absolute;
     background-color: #787878;
     height: 80px;
     width: 100%;
   }

   #content {
     position: absolute;
     background-color: #ababab;
     width: 100%;
     top: 80px;
     bottom: 50px;
   }

   #footer-wrapper {
     position: absolute;
     background-color: #dedede;
     height: 50px;
     width: 100%;
     bottom: 0;
   }
  </style>
 </head>
 <body>
  <div id="wrapper">
    <div id="header-wrapper">
      <div id="header">
        <div id="logo-bar">Logo</div>
      </div>
      <div id="nav"></div>
    </div>
    <div id="content">Content</div>
    <div id="footer-wrapper">
      <div id="footer">Footer</div>
    </div>
  </div>
 </body>
</html>
Zyphrax
Using both top **and** bottom properties on a `div` causes problems in IE6 and IE7/8 in quirks mode. Don't know if the OP wants to support those.
Marcel Korpel
The use of top/bottom is a good idea, I always forget about those. Thanks for the detailed answer!
SphereCat1
+1  A: 

A good article for footers is at A List Apart: http://www.alistapart.com/articles/footers/

It has the actual example of how you position a footer at the bottom with the expanding content div.

Patrick
Great article, thanks for passing it along.
SphereCat1
A: 

For a clean & simple solution that works well in all common browser, use this:

http://ryanfait.com/sticky-footer/

Tom
This looks to be exactly what I need! Thanks!
SphereCat1