I have replicated Ryan Fait's sticky footer. Here is the CSS and HTML for clarity:
<body>
<div class="wrapper">
// Content
<div class="push"></div>
</div>
<div class="footer">
<p>Lorem ipsum</p>
</div>
</body>
CSS:
html, body {
height: 100%;
}
.wrapper {
min-height: 100%;
height: auto !important; /* This line and the next line are not necessary unless you need IE6 support */
height: 100%;
margin: 0 auto -155px; /* the bottom margin is the negative value of the footer's height */
}
.footer, .push {
height: 155px; /* .push must be the same height as .footer */
}
As you can see, it works nicely. What I don't understand though is how the height (note: height, not min-height) is explicity set for the body
and yet it still expands beyond this value to accomodate content?
I hope my question is clear...
EDIT: The second comment on this answer seems to suggest that this shouldn't happen.