allora so che ci sono milioni di discussioni che portano un titolo simile, ma questa è diversa...
ho letto un sacco di discussioni su questo argomento, ma nessuna soluzione è completa, ne ho pensata una io e funziona, almeno così pare... ma è stupida, e non mi spiego come mai nessuno ci abbia pensato prima, per cui ho pensato che potrebbe avere qualche intoppo di cui un inesperto come me non si accorge.

la soluzione è questa:

1. creo una tabella annidandovi il mio div da centrare:

codice:
<table width="100%" height="100%" ><tr><td>      
   <div class="centro">      
   </div>     
</td></tr></table>
la tabella è larga ed alta 100%,

2. do l'altezza al mio body e all'html

codice:
html, body { 	
    height:100%; 
    margin:0; 
}
3. centro orizzontalmente il mio div

codice:
.centro { 	
     width:800px;
     margin-left:auto;
     margin-right:auto; 
}
non mi preoccupo affatto di centrarlo verticalmente in quanto lo farà da solo, indipendentemente dall'altezza del mio div, perchè è all'interno di una cella di una tabella, che di default mi centra verticalmente i contenuti.

la domanda che mi sorge è... andando avanti nello sviluppo del mio sito, posso incontrare problemi relativi a questa tecnica?