Nö, nen Link habe ich nicht, es ist aber eigentlich auch ziemlich einfach; manchmal habe ich das Gefühl es ist so einfach, dass die meisten es deswegen nicht verstehen.
Man soll natürlich nicht nur mit divs arbeiten. "Layout mit div" ist genauso falsch, wie "Layout mit Tabellen".
Überleg einfach mal, was HTML ist.
HTML ist eine Strukturbeschreibungssprache. Welchen Sinn hat HTML?
Mit HTML bringt man eine logische Bedeutung in den Inhalt.
Jedes Tag in HTML hat eine semantische Bedeutung:
h1 - Überschrift 1. Ordnung
p - Textabsatz
address - Adresse
quote - Zitat
em - wichtig
strong - sehr wichtig
div - allgemeines Blockelement, zum Gruppieren mehrerer Elemente
usw.
Der Sinn von HTML ist
nicht, das Auassehen, Design oder Layout zu definieren, damit hat HTML ncihts am Hut! Das macht alles CSS.
In HTML sollst Du nur Deinen Inhalt auszeichnen, im eine Bedeutung geben.
Code:
<div id="Header"><strong>Herzlich willkommen!</strong></div>
In diesem Code sind gleich zwei semantische Fehler.
1. Ein div ist nur ein allgemeines Blockelement, das dem Inhalt keine besondere Bedeutung gibt. Auch wenn man ihm eine ID mit Namen "Header" verpasst, wird daraus noch keine Überschrift. Eine Überschrift wird es nur, wenn es mit <h1> (bis <h6>) ausgezeichnet wird. Alles andere ist schlichtweg keine Überschrift, egal wie groß, mit Abstand, fett oder sonstwas der Text am Bildschirm erscheint. HTML ist ja auch nicht für das Aussehen, das Erscheinen am Bildschirm zuständig.
2. Die vermeintliche Überschrift soll fett am Bildschirm dargestellt werden, dafür wird <strong> verwendet. Das ist natürlich Käse. Zum einen soll die Überschrift ja nicht *wichtig* sein, sie soll nur eine Überschrift sein. Dass sie am Bildschirm fett erscheinen soll, ist Aussehen und wird von CSS für <h1> festgelegt.
Zum anderen ist nicht vorgeschrieben, wie ein Browser ein Tag ohne Angabe von CSS-EIgenschaften darstellen soll. Es gibt zwar Empfehlungen, aber es ist nicht garantiert, dass jeder Browser <strong> fett darstellt.
Wenn Du Deinen Inhalt mit HTML auszeichnest, darfst Du nur im Kopf haben, welche Bedeutung der Inhalt hat. Man wählt HTML.-Tags nur wegen ihrer Bedeutung -
niemals weil sie ein bestimmtes Aussehen erzeugen. HTML ist nicht für das Aussehen zuständig!
Das allgemeine Blockelement <div> wird hier nur zum Gruppieren mehrerer Elemente benötigt. In der Regel, weil man diese Elemente alle gleich formatieren will, z.B. eine Sidebar mit einem Menü und einem Werbetext. Die kann man mit div zusammenfassen und dann z.B. floaten. Hat man in einer Sidebar aber nur ein Menü (was übrigens als Liste ausgezeichnet wird), ist es Nonsense, diese Liste zusätzlich noch in ein div zu packen. Alles, was man dem div an Eigenschaften geben würde, kann man auch der Liste geben. Beides sind Block-Elemente.
Es gibt Sitationen, in denen es unvermeidlich ist, ein paar divs einzustreuen, ohne dass diese Inhalt enthalten oder rein vom HTML-Standpunkt her sinnvoll wären. Dann und nur dann unterstützen sie CSS, z.B. wenn man einen Container mit runden Ecken als GRafiken versehen will und der Rahmen gleichzeitig mitwachsen können soll.
Aber in der Regel benutzt man div nur zum Gruppieren mehrerer Elemente, ein "normales" Layout kann auch völlig ohne divs auskommen.
Wichtig ist, zu verstehen, dass HTML nur für die logische Bedeutung des Inhalts da ist und dass man beim Setzen von Tags nicht an das Aussehen denken soll. Dann ist alles ganz einfach.
Alles klar? :-)
Noch Fragen? Immer her damit...
Gruß,
-Efchen
P.S.: Und Tabellen sind dafür da, tabellarische Daten auszuzeichnen, z.B. eine Bundesliga-Tabelle. Tabellen, divs, <p>, <ul>, sie alle benutzt man nicht zu Layoutzwecken!
P.P.S.: Das gilt sowohl für HTML 3.2 wie auch für HTML 5 und XHTML, also für alle *HTML*