La strada che hai scelto è un po' complicata, ma questo è un mio parere.
Io farei un div contenitore impostando larghezza e posizione, poi al suo interno gli altri div.
ti posto un codice che ho usato per un layout a due colonne, il fondo è sempre attaccato e varia il posizionamento a seconda dei contenuti della pagina
#contenitore{
width:800px;
margin:0 auto;
}
#testata{
width:800px;
height:88px;
}
#menusx{
float:left;
width:190px;
}
#pagina{
float:left;
width:600px;
}
#fondo{
clear:both;
background: #333;
color: #FFF;
}