Al hacer "flotar" un elemento este sale fuera de flujo y es tratado diferente. Tu has hecho que todos los elementos dentro de ".contenedor" salgan fuera del flujo dejando ".contenedor" vacio.
Ahora que has empezado a usar css debes saber que IE siempre esta equivocado. IE es el peor browser que haya existido jamas, y ya veras los dolores de cabeza que te da con CSS.
En fin, empieza a usar FF como tu browser y descargate Firebug, sin el no habra forma de que te enteres de lo que esta pasando.
Añade esto a tu codigo y FF mostrara tu fondo amarillo.
Cita: .contenedor{ overflow: hidden; }
Otra cosa, debes saber que cada vez que haces un float IE añade 3px de margen (asi, porque le da la gana). Leete esto y con suerte te ahorraras un par de horas de sueño http://www.positioniseverything.net/explorer/threepxtest.html.