Ciao a tutti!
Sto impazzendo su un CSS quindi chiedo il vostro aiuto per capire cosa non va. Ho preprarato un layout a 3 colonne con una tabella contenitiva:

--------------------------------------------------
| header sx | header centrale | header dx |
--------------------------------------------------
| colonna sx | menu e contenuti | colonna dx |
--------------------------------------------------
| footer dx | footer centrale | footer dx |
--------------------------------------------------

Lo schemino è un po' storto ma spero si capisca ugualmente.
Il layout ha il classico problema dello spazio tra il footer e il fondo della pagina, ma solo con Firefox e solo in alcune pagine! Il contenuto non c'entra: lo spazio appare anche se non viene caricato nulla, o se i contenuti sono più lunghi dello schermo... quindi non riesco a capire cosa crea l'errore e mi sto scervellando.

Magari potete darmi un consiglio?
Vi posto qui il codice CSS del layout:
html, body, td {
margin: 0;
padding: 0;
min-height: 100%;
height: 100%;
font-family: Tahoma, Arial;
font-size: .8em;
color: #000000;
}

/* Immagine di testata */
.header {
background-image: url(images/header.jpg);
background-repeat: no-repeat;
background-position: center top;
height: 50px;
}
.header_sx {
background-image: url(images/bg_headsx.jpg);
background-position: right top;
height: 50px;
}
.header_top {
width: 860px;
height: 50px;
background-image: url(images/bg_headmd.jpg);
background-position: center top;
text-align: center;
}
.header_dx {
background-image: url(images/bg_headdx.jpg);
background-position: left top;
height: 50px;
}
.image_sx {
background-image: url(images/bg_imagesx.jpg);
background-position: right top;
height: 348px;
}
.image_dx {
background-image: url(images/bg_imagedx.jpg);
background-position: left top;
height: 348px;
}
/* colonna sinistra */
.div_sx {
background-image: url(images/bg_colsx.jpg);
background-repeat: repeat-y;
background-position: right;
}
/* Colonna destra */
.div_dx {
background-image: url(images/bg_coldx.jpg);
background-repeat: repeat-y;
background-position: left;
/* PASQUA */
}
/* Colonna centrale (contenuti) */
.tableContent {
width: 860px;
min-height: 100%;
height: 100%;
background-image: url(images/bg_imagemd.jpg);
background-position: center top;
background-repeat: no-repeat;
background-color: #FFFFFF;
}
.footer_sx {
margin-bottom: -200px;
float: left;
margin: 0;
padding: 0;
background-image: url(images/bg_footsx.jpg);
background-position: right top;
background-repeat: no-repeat;
height: 100px;
}
.footer {
margin-bottom: -200px;
padding: 0;
background-image: url(images/bg_footmd.jpg);
background-position: center top;
background-repeat: no-repeat;
height: 100px;
}
.footer_dx {
margin-bottom: -200px;
padding: 0;
background-image: url(images/bg_footdx.jpg);
background-position: left top;
background-repeat: no-repeat;
height: 100px;
}