To nie jest tak jak myślisz. Poczytaj więcej o elementach pływających ("floatach"). Element, który zawiera TYLKO elementy pływające, ma domyślnie wysokość równą zero.
U Ciebie po prostu ten zewnętrzny div z czarnym tłem jest zupełnie niewidoczny. Daj mu jakieś obramowanie to zobaczysz tylko poziomą kreskę: okaże się, że div ten ma wysokość zero, bo floaty nie rozciągają w pionie elementów.
Musisz zastosować tzw. clearfix. Pogooglaj o tym, są na to różne sposoby. Będziesz musiał dać zewnętrznemu elementowi div style, dzięki którym uwzględni on wysokość znajdującego się w nim elementu pływającego i odpowiednio się rozciągnie. Często wystarczy dać temu zewnętrznemu elementowi po prostu "overflow: hidden" -- to chyba najprostsza metoda, choć nie działa w IE6 (w IE6 musisz dodatkowo dać np. width: 100% czy zoom: 1, przy czym to ostatnie należy umieścić w arkuszu stylów tylko dla IE). Jest jeszcze metoda z pseudoklasą :after i paroma hackami dla słabszych przeglądarek. Bardziej skomplikowana, ale działa w zasadzie we wszystkich przypadkach -- nawet gdy nie można zastosować sztuczki z overflow. Mimo to, ja chyba częściej używam overflow.
@djgarsi:
Hm? Dodałeś średniki na końcu atrybutów style? Nie, to kompletnie nie o to chodzi. Średniki na samym końcu bloku deklaracji (lub: na końcu zawartości atrybutu style) są opcjonalne i ich brak niczego nie psuje. Chodzi o to, co napisałem powyżej.