The easiest way to do this is to use a table to design the frame of your page. For example, I have a header, a middle (containing a left and right sidebar and a main body section), and a footer. I set the middle section to fill all remaining vertical space, and set physical height for the header and footer. That way the footer always remains at the bottom no matter how much content is on the page.