Non so se ci sono metodi migliori, ma io faccio così:
Posiziono il div al centro del contenitore mettendo position:relative; top:metà dell'altezza; left:metà della larghezza;.
Poi lo sposto con i margin in alto per la metà della sua altezza e a sinistra per la metà della sua larghezza.
Edit:codice:<html> <head> <style> #div1 {border:1px solid red; width:600px; height:600px; padding-left:50%; padding-top:50%;} #div2 {border:1px solid blue; width:200px; height:400px; margin:-200 0 0 -100;} </style> </head> <body> <div id="div1"> <div id="div2"></div> </div> </body> </html>
No, è un po' che non lo faccio, come avevo postato non era un metodo furbissimo.
Il div interno lo si centra mettendo il padding left e top al 50% nel contenitore.