Usted define /top:50%/ y la cuestión es ¿50% de qué?
Como fue tan parco en sus códigos, no se si su html ycss sólo contiene ese código o hay más.
Si resulta que esa caja /#contenido/ es hija del html y ni éste ni body tiene declarado valor para /height/, el valor base para calcular el 50% es 0 (cero), por lo que la mitad de su caja desaparece por arriba. 
Solución: añada a sus estilos: 
 Cita:  html, body {
   height:100%;
    width:100%;
}
    Editado:
Respuesta redactada antes de ver el comentario #3