Struktur und Bedeutung
Bis hierher hast du einzelne Textstücke ausgezeichnet. Jetzt gliederst du die ganze Seite – in Bereiche, die alle Webseiten haben: einen Kopf, eine Navigation, den eigentlichen Inhalt, einen Fuß.
Der Bauplan einer Seite
graph TD
BODY[body] --> HEADER["header: Kopfbereich mit Titel"]
BODY --> MAIN["main: der Inhalt der Seite"]
BODY --> FOOTER["footer: Impressum und Kontakt"]
HEADER --> NAV["nav: Navigation"]
MAIN --> S1["section: Abschnitt"]
MAIN --> S2["article: eigener Beitrag"]
MAIN --> ASIDE["aside: Randbemerkung"]
| Element | Wofür |
|---|---|
<header> |
Kopfbereich: Titel, Logo, Navigation |
<nav> |
eine Sammlung von Links zur Orientierung |
<main> |
der Hauptinhalt. Kommt genau einmal je Seite vor |
<section> |
ein thematischer Abschnitt, meist mit eigener Überschrift |
<article> |
ein Inhalt, der für sich allein Sinn ergibt – ein Beitrag, ein Rezept, eine Nachricht |
<aside> |
etwas am Rande, das nicht zum Hauptstrang gehört |
<footer> |
Fußbereich: Impressum, Kontakt, Urheberrechtshinweis |
Solche Elemente nennt man semantisch: Sie sagen etwas über die Bedeutung ihres Inhalts aus.
a) Schalte die farbigen Rahmen aus, indem du die CSS-Regel mit outline löschst. Ändert sich die Anordnung der Bereiche?
b) Ersetze alle sechs Elementnamen im HTML durch <div> – also <header> durch <div> und so weiter. Was ändert sich in der Vorschau?
c) Was geht dabei trotzdem verloren?
Tipp zu c)
Frage dich: Woran würde ein Programm, das die Seite nicht sehen kann, noch erkennen, wo die Navigation aufhört und der Inhalt anfängt?
div und span
<div> und <span> sind die bedeutungslosen Elemente. Sie sind dafür da, etwas zusammenzufassen, das man gestalten will, wenn es kein passendes semantisches Element gibt.
<div>fasst Blöcke zusammen und steht in einer eigenen Zeile.<span>fasst etwas im laufenden Text zusammen und bleibt in der Zeile.
Beide bekommen fast immer ein class-Attribut – daran greift CSS sie später. Mehr dazu in Kapitel 4.
Woher weiß man, ob ein Element in einer eigenen Zeile steht oder nicht?
Jedes Element hat eine voreingestellte Anzeigeart:
- Block – nimmt die ganze verfügbare Breite ein und beginnt in einer neuen Zeile:
div,p,h1bish6,ul,li,section,header,main,footer - Inline – nimmt nur so viel Platz wie nötig und bleibt in der Zeile:
span,a,strong,em,code,img
Diese Voreinstellung ist nur eine Voreinstellung. Mit CSS lässt sie sich ändern – ein <li> kann nebeneinander stehen, ein <a> kann ein ganzer Kasten werden. In Kapitel 4 machst du genau das.
Aufgabe: eine Seite gliedern
Der Übungsbereich enthält eine Seite ohne jede Gliederung – alles hängt direkt im body.
Gliedere sie mit <header>, <nav>, <main>, <article>, <aside> und <footer>. Am Text selbst änderst du nichts.
Tipp 1: Wo fange ich an?
Gehe die Seite von oben nach unten durch und frage bei jedem Stück: Ist das Kopf, Navigation, Hauptinhalt, Randbemerkung oder Fuß?
Tipp 2: Gerüst
<header>
… Titel und Navigation …
</header>
<main>
… die beiden inhaltlichen Abschnitte …
<aside> … </aside>
</main>
<footer>
… Verantwortlich und Impressum …
</footer>