el problema es que los navegadores le dan márgenes por defecto a casi todos los elementos bloques, por eso en este caso nada es algo. Yo usualmente le quito todos los márgenes y paddings a los elementos antes de empezar a trabajar mis hojas CSS así:
Código HTML:
*{margin:0;padding:0;}