Hola vitogp,
A mi me ocurria lo mismo cuando empece con esto del css... me volvia loco de remate!... un dia descubri que si ponia display:table... se veia correcto... pero otro dia... pregunte aqui en el foro... y me arrojaron luz!... jeje
Te explico:
Para que que el div se comporte adecuadamente cuando no tiene contenido... o medidas... pon:
Código PHP:
overflow:auto;
Es como si un div se almodase a lo que tiene en su interior. Asi que no pongas display:table... pon overflow:auto.
Bueno la verdad es que no se si es esto lo que quieres... pero eso de que la altura sea la suma de los div's de su interior me ha sonado tanto a mis inicios... que no me he podido repremir escribirte.
Hasta pronto... espero que te sirva!... sino explica un poco mas!.