Container

Eine Alternative zum Frame-Aufbau sind sog. Container. Container können mehrere Elemente wie bspw. Text, Grafiken und Tabellen in einen gemeinsamen Bereich einschließen und über Style Sheets positioniert werden.
Stand 24.10.2012

Inhaltsübersicht:

  1. Seitenstrukturierung durch Container
  2. Reihenfolge der Container
  3. Hinweise zur Formatierung von Containern

Seitenstrukturierung durch Container

Eine Alternative zum Frame-Aufbau (siehe Frames) ist das Aufteilen einer Seite in <div>-Elemente, sog. Container.

Ausgabe Container 1 - Navigation vor Inhalt

Bildbeschreibung "Ausgabe Container 1 - Navigation vor Inhalt": Bildschirmfoto. Mit Hilfe von Containern kann das gleiche Layout abgebildet werden wie mit Frames.

Container können mehrere Elemente wie Text, Grafiken und Tabellen in einen gemeinsamen Bereich einschließen, über Style Sheets fest positioniert werden und äquivalent zum Frame-Gerüst verschiedene Bereiche einer Webseite repräsentieren. Das nachfolgende Beispiel zeigt, wie zwei Container nebeneinander positioniert werden. Container 1 hat die Klasse navigation und erhält 20 Prozent der verfügbaren Seitenbreite. Container 2 mit der Klasse inhalt erhält links einen dem ersten Container entsprechenden Abstand von 20 Prozent und die restliche verbleibende Breite der Webseite von 80 Prozent.

Beispiel CSS-Datei - Container (Ausschnitt):

div.navigation {
  position: absolute;
  width: 20%;

}
div.inhalt {
  margin-left: 20%;
  position: absolute;
  width: 80%;

}

Bei der Entwicklung einer Website ist zu beachten, dass diese auch für Nutzer mit geringer Bildschirmauflösung lesbar ist. Für ein barrierefreies bzw. barrierearmes Webdesign ist das Layout der Seite deshalb flexibel aufzubauen, so dass sich Elemente des Fließtextes bei kleiner Fenstergröße nicht überlagern. Das kann durch eine relative Breitenangabe für die einzelnen Container erreicht werden, bspw. "width:20%" für den Navigationscontainer.

Beispiel XHTML-Datei - Container mit Navigation vor Inhalt (Ausschnitt):

<body>
<!-- Container mit Navigation --> <div class="navigation">
Alle Elemente und Inhalte des Menüs.
</div>
<!-- Container mit eigentlichem Inhalt --> <div class="inhalt">
Der eigentliche Inhalt.
</div>
</body>

In HTML5 stehen neue Elemente zur Verfügung, die bestehende Container mit Standard-Inhalten ablösen, z.B. das <nav>-Element für einen Container mit Navigationselementen (siehe HTML5 zur Strukturierung).

Seitenanfang

Reihenfolge der Container

Die Reihenfolge der <div>-Elemente im Quelltext ist ausschließlich in Zusammenhang mit der Linearisierung von Bedeutung aber somit für den Nutzer eines Text-Browser oder Screenreader entscheidend. Container mit für den Nutzer relevanten Inhalten sind immer an den Anfang eines Dokumentes zu stellen, sich wiederholende Elemente, wie bspw. aktuelle Meldungen oder Besucherstatistiken, können in Container eingebettet werden, die im Quelltext erst zum Ende hin erscheinen. Ein die Hauptnavigation enthaltender Container kann bspw. nur in der Startseite im Quelltext an erster Stelle stehen, in den darauffolgenden Dokumenten dann jedoch an das Ende verlegt werden.

Beispiel XHTML-Datei - Container mit Inhalt vor Navigation (Ausschnitt):

<body>
<!-- Container mit eigentlichem Inhalt --> <div class="inhalt">
Der eigentliche Inhalt.
</div>
<!-- Container mit Navigation --> <div class="navigation">
Alle Elemente und Inhalte des Menüs.
</div>
</body>

Durch das Positionieren der Container über CSS werden Nutzer grafischer Ausgabegeräte diese Feinheit nicht weiter bemerken. Sowohl das nachfolgende als auch das vorangegangene Bildschirmfoto der optischen Browser-Ausgabe sind identisch, da sowohl die Navigation als auch der Inhalt in einem entsprechenden Container notiert sind und diese über Style Sheets fest definiert und positioniert werden.

Ausgabe Container 2 - Inhalt vor Navigation

Bildbeschreibung "Ausgabe Container 2 - Navigation vor Inhalt": Diese und die vorangegangene Ausgabe sind identisch, da sowohl die Navigation als auch der Inhalt in einem entsprechenden Container notiert sind und diese über Style Sheets fest definiert und positioniert werden. Optisch befindet sich deshalb die Navigation weiterhin vor dem Inhalt, auch wenn in diesem Beispiel die Notation im Quellltext genau andersherum ist.

Hilfreich ist das unterschiedliche Positionieren im Quelltext jedoch für Nutzer eines Text-Browser oder Screenreader, wie die linearisierte Variante im nachfolgenden Beispiel zeigt.

Linearisierung Container 1 - Navigation vor Inhalt

Bildbeschreibung "Linearisierung Container 1 - Navigation vor Inhalt": Hier wird der Unterschied zwischen beiden Container-Varianten deutlich. Der im Quelltext zuerst notierte Bereich wird bei Linearisierung auch zuerst betrachtet. In diesem Fall zuerst die Navigation und dann der Inhalt.

Linearisierung Container 2 - Inhalt vor Navigation

Bildbeschreibung "Linearisierung Container 2 - Inhalt vor Navigation": Hier wird der Unterschied zwischen beiden Container-Varianten deutlich. Der im Quelltext zuerst notierte Bereich wird bei Linearisierung auch zuerst betrachtet. In diesem Fall zuerst der Inhalt und dann die Navigation.

Seitenanfang

Hinweise zur Formatierung von Containern

Soll eine bestimmte Container-Höhe definiert werden, ist das CSS-Attribut min-height zu verwenden. Dann wächst bei umfangreichen Inhalten bzw. bei Skalierung der Inhalte auch der Container mit. Andernfalls (bei Verwendung des Attributes height) würden die Inhalte über die Ränder des Containers hinausragen. Das kann bei komplexen Formatierungs-Maßnahmen, der Verwendung mehrerer Container mit unterschiedlichen Formatzuweisungen (Hintergrundfarben, farbige Container-Rahmen) zu ungewollten optischen Überlappungen führen.

Skalierbarkeit von Containern

Bildbeschreibung "Skalierbarkeit von Containern": Zwei Container - einer mit ungewollten Inhalts-Überschneidungen durch Höhenangabe über height (links) und einer mit dynamischer Anpassung durch Höhenangabe über min-height (rechts).

Beispiel CSS-Datei - Höhenangabe für Container (Ausschnitt):

div.rahmen {
  min-height: 10em; /* dynamische Mindesthöhe */   ... weitere Angaben zu Rahmen, Schriftart,
  Schriftgröße usw.
}

Weiterführende Literatur:

Münz, Stefan und Nefzger, Wolfgang:
Buchdeckel HTML-Handbuch
HTML & Web-Publishing Handbuch, Band 1, Seite 174,
Franzis' Verlag GmbH, Poing, 2002,
ISBN 3772375162

Seitenanfang