Bienvenido al foro.
Lo más seguro es que #contenedor no esté tomando la altura que debe, ya que contiene elementos flotados. Para forzar que toma esa altura, añádele un overflow:
Código CSS:
Ver original#contenedor {
overflow: hidden;
/* demás CSS */
}
También puedes usar otro método, que se supone más moderno, que es el
micro clearfix. Aunque para este caso específico te basta usar overflow.