dazu wurde hier aber schon massenhaft geschrieben.
einen text mit css zu layoutieren ist klar, css ist die auszeichnung von texten in html-dokumenten. dem steht gegenüber, dass viele dann anfangen mit css tabellensruktur aufzubauen (nach meiner meinung unsinnig).
* tabelle um ein bild anzuzeigen => falsch
* div schachtelungen mit 8 oder 10 divs => ganauso falsch und genauso unübersichtlich.
bei allem pro/contra (du wirst einiges hören) musst du dir im klaren sein, dass der "layout-code" irgendwo hin geschrieben werden muss. dass was du dir als <table><tr> verschachtelung ersparst, muss in css mit div, paddings, bordern etc nachgemacht werden. genauer gesagt, tabellarische daten werden nach wie vor in eine tabelle gepackt, dafür sind sie auch da.
da browser (und da gibt es nun wirklich mittlerweile viele neue) leider immernoch css unterschiedlich interpretieren (von derartigen fragen ist das board voll), kannst du weichen in css einbauen, für jeden browser (meistens eines für den ie eines für alle anderen) ein eigenes css machen, wie auch immer, oder eben mit einem veralteten standard leben und die nachteile in kauf nehemn. sicher ist, der code muss irgendwo hin. ob in einem css oder in einer tabelle macht unterschiede bei einer modemverbindung baudrate von 19200. da sind tabellen langsam, css wird gecached.
auf eine diskussion, ob bild, grafik, text, media und andere elemente ausschliesslich mit css formatiert werden sollten, lass ich mich nicht ein.
ich stelle mittlerweile einiges auf css um, wo ich bisher andere html-elemente verwendet habe, manchmal geht es mit css aber einfach nicht oder besser, nur über krampfartige umwege ist es machbar allen browsern genüge zu tun. da tabellen alter standard sind, KÖNNEN alle gänigen browser tabellen und stellen sie auch "nahezu" fehlerfrei dar.