si no la has visto, creo que te hace falta echarte una repasada de CSS
-> clic aquí
y si precisamente con esa propiedad puedes solventar ese fallo que mencionas
aparte por lo que veo te falta limpiar los floats también puede ser una causa para que tu div padre no creesca tanto como los hijos, agrega overflow:hidden para el problema de los floats