Hallo,
Das vernünftige[tm] („semantische“) Markup wird dann durch die Elemente (nav, main, etc.) realisiert ...
nein, die sind nur ein kleiner Beitrag dazu.
Und was macht dann den restlichen Beitrag aus? (Das verstehe ich leider nicht.)
unter dem Buzzword "semantisches Markup" versteht man eigentlich etwas Selbstverständliches: Dass man konsequent die HTML-Elemente nutzt, die die Struktur des Dokuments am besten wiedergeben. Also beispielsweise h2,h2,h3,... für Überschriften; ul/ol für Listen oder listenähnliche Aufzählungen; fieldset zum Gruppieren von Formularelementen; eine Tabelle dann, wenn wirklich Tabellendaten wiedergegeben werden sollen. Das Ergebnis ist, dass man auch schon anhand des ungestylten HTML-Codes die Dokumentstruktur erkennen kann.
Gegenbeispiele, also nicht semantisches Markup sind beispielsweise die Verwendung von Tabellen als Layoutmittel oder die übermäßige Verwendung von speziell gestylten div-Elementen, wo andere Elemente die Bedeutung besser treffen. Manche Webautoren scheinen zu glauben, dass man unbedingt div-Container bräuchte, um mit CSS darauf einzuwirken. Nein, das ist ganz sicher nicht so! Mit CSS kann man jedes Element formatieren (mit kleinen Einschränkungen bei Elementen, die eine bestimmte Funktion haben). Das div-Element ist eigentlich nur zum Gruppieren gedacht, also um mehrere Elemente zu einem Block zusammenzufassen (ein div mit nur einem Kindelement ist daher seltenst sinnvoll).
Wenn man den Begriff etwas weiter fassen mag, versteht man unter semantischem Markup oft auch noch die saubere Trennung von Inhalt und Gestaltung, soll heißen: Der HTML-Quellcode enthält im Idealfall weder Hinweise auf das gewünschte Aussehen, noch wird er von darstellungsbezogenen Absichten beeinflusst sein. Als oft gesehenes schlechtes Beispiel mag die Verwendung eines h3- oder h4-Elements gelten, nur "weil die Schriftgröße dann so ist, wie ich sie haben will", und nciht, weil der damit markierte Text eine Überschrift dritter oder vierter Ordnung ist.
Dann noch mal die andere Frage: Diese Elemente (nav, main, etc.) werden dann per CSS auf der Seite positioniert, richtig?
Jein. Kommt drauf an, was du unter "Positionieren" verstehst. Wenn du die explizite Verwendung der position-Eigenschaft meinst, womöglich sogar mit position:absolute für einige Elemente ein starres Layout schaffen möchtest, rate ich davon ab. Oft ergibt sich die gewünschte Positionierung von Elementen "fast von allein", wenn man deren Größe und Abstände zu anderen Elementen pfiffig angibt, und so schafft man auch leichter ein Layout, das flexibel auf Änderung der Fenstergröße, der Schriftgröße oder des Zoomfaktors reagiert.
Gegen den wohldosierten und überlegten Einsatz von Positionierung mit CSS, ggf. kombiniert mit Floating und anderen Mitteln, ist aber sicher nichts einzuwenden.
Ist das das gleiche Prinzip, wenn dies über div-Container realisiert wird, die dann ihre Eigenschaften mit CSS als ID zugewiesen bekommen [nur eben ohne vernünftiges[tm] („semantisches“) Markup]?
Die Frage verstehe ich nicht ganz, glaube ich. Aber vielleicht ist sie durch die vorhergehenden Absätze schon beantwortet.
So long,
Martin
Kleine Geschenke erhalten die Freundschaft.
Große verderben sie aber meist auch nicht.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(