Pie de pagina al final con CSS

Les ha ocurrido que tiene una pagina y el contenido no llena toda la ventana, y el pie de pagina esta a continuación del contenido quedando el resto de espacio libre.

o simplemente quieren que el pie de pagina este siempre al final se cual sea el caso, pues buscando en Internet encontré una forma de hacerlo con solo css.

primero un ejemplo de la idea expuesta con las siguientes imágenes.

de tener una pagina con una estructura similar:
pie inicial

a esta otra:
pie final

para poder entender como se hace esto, es necesario tener algo de conocimiento de HTML y CSS, en google pueden busca mucha documentación ;)

con CSS debemos hacer que la etiqueta <body> el alto mínimo sea de 100%, creamos una etiqueta <div> principal que va a contener todo, menos el pie de pagina, que seria otra etiqueta <div>.

la etiqueta <div> principal también va a ser de alto mínimo de 100% pero con la diferencia que va a tener el margen inferior negativo :D ya por acá esta el truco, ese margen negativo debe ser en numero igual al lo alto de la etiqueta del pie de pagina.

pero ahora se necesita otra etiqueta <div> vacía, que también debe ser del mismo tamaño del pie de pagina, esto por que?
bueno la etiqueta <div> principal tiene margen negativo, y al colocar el pie de pagina, estaría a la misma altura, así que hay que crear una etiqueta vacía del mismo tamaño del pie de pagina pero esta vez va dentro de la etiqueta principal para separarla de pie de pagina real.

ya explicado como es que funciona, un ejemplo en código HTML y CSS, yo uso clases (class) en el CSS, también es valido usar ID:

el HTML:

<body>
<div class="body">
    <span>jhuss.org</span>
    <div class="nopie"></div>
</div>
<div class="pie">
    <div>2008 - [jhuss~]#</div>
</div>
</body>

el CSS:

body {
    height: 100%;
    margin: 0px 0px 0px 0px ;
}
div.body {
    min-height: 100%;
    height: 100%;
    margin-bottom: -60px;
    position: relative;
}
div.nopie {
    height: 60px;
    clear: both;
}
div.pie {
    height: 60px;
    position: relative;
}

la solución es gracias a este post en ingles: http://fortysevenmedia.com/

saludos.