Hola:
Sobre la altura de la capa, sencillamente al ser un elemento de bloque se mete un espacio como si hubiese un tag br... para asegurarte de que tenga la altura específica, hay que poner overflow: hidden (tuve un problema similar en una librería gráfica)...
Saludos