Aber es wird immer angekreidet, dass man sein gesamtes Layout nur aus divs macht (nicht der Inhalt, das Layout!!). Und da war meine Frage: Wie denn sonst?
Lass doch einfach mal die divs weg und versuche, Deinen Inhalt mit HTML auszuzeichnen. Das geht genauso.
Die Bedeutung von <div> ist: Gruppiere zwei oder mehr Elemente zwecks gemeinsamer Formatierung. Nur dann brauchst Du ein <div>.
Im Idealfalle hat man zuerst den Inhalt, dann die HTML-Auszeichnung und dann erst das Layout. Die meisten Umsteiger machen zuerst das Layout, und weil sie noch keinen Inhalt haben, nehmen sie <div> als Box.
Aber ein <div> ist nur ein allgemeines Block-Element. Es gibt aber noch etliche andere Block-Elemente, die sich genauso verhalten, wie ein <div>, <address>, <h1>, <ul>, uvm. Aber all diese geben Deinem Inhalt auch eine Bedeutung. Und deswegen verwendet man diese.
<div> dient nur dem Gruppieren von mindestens zwei Elementen zwecks gemeinsamer Formatierung. Hast Du nur ein Element, brauchst Du kein <div> drumrum. Viele Umsteiger/Anfänger glauben, CSS-Eigenschaften könne man nur bestimmten Elementen zuweisen, aber grundsätzlich gilt: Bis auf Ausnahmen kannst Du jede Eigenschaft auch jedem Element zuweisen. Man kann auch ein <h1> positionieren oder einem <p> ein overflow:auto mitgeben. Problemlos. Das begreifen viele nicht, weil das mit den Attributen in HTML wirklich schwierig war, welches für welches Tag überhaupt möglich war.
Probier es mal, eine Website in der Reihenfolge anzugehen:
1. Inhalt schreiben (Texte, Überschriften, ...)
2. Mit HTML auszeichnen und kein <div> verwenden.
3. Layout/Design mit CSS machen, falls nötig, nachträglich Elemente mit <div> gruppieren.
Dann merkst Du, dass <div> für CSS-Design nicht zwingend notwendig ist! Und Du lernst nebenbei auch HTML :-)
Gruß,
-Efchen