div' s sind "container" oder "ebenen". der unterschied zu tabellen ist grundlegend:
während tabellen in html dafür gedacht (!!!) sind, daten in tabellarischer form darzustellen, sind container dafür gedacht, das layout rüberzubringen.
es ist an sich eine unsitte, mit tabellen zu layouten und widerspricht dem grundgedanken der beschreibungssprache html! aber, damit hier keine endlosdiskussion aufkommt (hehe): viele layouten noch immer mit tabellen, auch ich hab das lange getan. css ist etwas diffizieler, weil die browser leider css schlecht und unterschiedlich interpretieren. das kann zu sehr unschönen effekten führen

daher ist hartes css etwas komplex!
container kann man - und soll man - natürlich nur per css definieren (position, verhalten, farben usw.) und dann nur noch logisch ins markup einbinden!