Vorgehensweise
Ein Container #wrap, der den gesamten Inhalt (außer #footer) umschließt, erhält eine Mindesthöhe von 100%. Da sich die Höhenangabe in % auf den height-Wert des Elternelements bezieht, bekommen die Eltern html und body jeweils height:100%.
Der #footer steht unterhalb des Elements #wrap. Er wird durch einen negativen margin, der so groß wie seine Höhe ist, in den sichtbaren Bereich gezogen.
Bei wenig Inhalt sitzt der #footer immer am unteren Rand des Browserfensters. Wenn der Inhalt mehr Platz benötigt – also gescrollt werden muss – wandert der #footer mit dem Inhalt nach unten.
Diese Technik ist bekannt als footerStickAlt.
Der IE bis einschließlich Version 6 kennt die min-height-Eigenschaft nicht, interpretiert aber die height-Eigenschaft falsch (die Elemente wachsen mit dem Inhalt). Der IE erhält also separat (hier per Hack) ein height:100% für #wrap.
Minimales CSS
* {margin:0;padding:0;}html, body {height:100%;}#wrap {min-height:100%;}/* IE Win < 7 only \*/* html #wrap {height:100%;}/* end IE Win < 7 only */#footer {height:3em;margin-top:-3em;}
Minimales HTML
<div id="wrap"></div><div id="footer"></div>