This demo uses no extra markup in the html for Opera and IE8 compliance.

Using a body:before float for Opera's page redraw bug.
Using a wrapper:after block with height:1%; for IE8's min-height:100%; bug.

See Example#2 for a method that uses a non-semantic dummy float in the html which will keep the CSS very simple.

Reduce viewport height to scroll content and test sticky footer test sticky.

This is just a test float to ensure that #content is containing it's floats.

Expand Float

Content

Content

Content

Content

Last line of text shows #content div's bottom-padding.
It protects text from sliding under the footer which was pulled up with a negative top margin.