Sobre .contenedor:
no se ve el fondo porque su height es igual a cero. quitale float:left y ponle margin:0 auto; junto a un doctype.
Su height es igual a cero porque tiene elementos flotados en su interior, para solucionar esto debes añadirle overflow:hidden; con esto consigues que su height dependa de su hijo flotado más alto.
acá un ejemplo.
Saludos.