W3C

Tabellenloses Webseitendesign

Übersicht und Status

Es wurde schon oftmals geraten, dass Tabellen nicht für layoutbezogene Aufgaben in HTML herangezogen werden sollten. Diese Seite zeigt einen Weg, ein dreispaltiges Layout nur allein mit Hilfe von CSS zu erstellen.

Bei Fragen, Kommentaren und Anregungen wenden Sie sich bitte an Dominique Hazaël-Massieux

Es existiert eine Übersicht mit allen verfügbaren Übersetzungen dieses Dokuments

Einleitung

HTML ist eine strukturelle Sprache, was bedeutet, dass sie dazu verwendet wird - oder sollte - einem Text eine Struktur zu verleihen mit Hilfe von Tags.

Jedoch, seit der Einführung von Tabellen in HTML, werden diese sehr oft für layouttechnische Zwecke benutzt, meistens um eine Seite in mehrere Spalten zu unterteilen. Neben der Tatsache, dass es die eigentliche Bestimmung von HTML verletzt, hilft es in vielen Fällen überhaupt nicht weiter, die wir unter fehlerhaftem Interpretieren in manchen Zusammenhängen zusammenfassen können. (Darstellungsfläche auf dem Monitor, Behinderungen von Besuchern)

Dieses Dokument beschreibt einen Weg, ein dreispaltiges Layout zu erstellen und bietet weiterführende Informationen zu weiteren Layouttechniken.

Layoutbeschreibung

Die Technik, die im Folgenden beschrieben wird, wird auch auf der Seite für W3C-Anfänger benutzt und bietet ein Dreispalten-Layout mit den folgenden Merkmalen:

Dieses Layout eignet sich hervorragend für Webseiten, da es den kompletten Text in der Mitte hat und an den Seiten jeweils Platz für Linklisten bietet.

Eine kleine Einschränkung hierbei ist, dass es auf Browsern mit einer mIsErablen CSS-Implementierung nicht wie gewünscht dargestellt wird, degeneriert im schlimmsten Fall jedoch zu einem netten vertikalen Layout.

Das Layout wurde auch auf diese Seite hier angewendet, damit man sich direkt ein Bild davon machen kann.

Implementierung

Grafik, die das Layout veranschaulichen soll

Dieses Layout benutzt CSS-absolute Positionierung. Wenn wir drei Container auf der HTML-Seite definieren (<div id="main">, <div id="list1" class="link-list">, <div id="list2" class="link-list"> ), können wir folgende CSS-Style-Attribute zuweisen:

/* Eigenschaften, die beide Listen gemein haben */
div.link-list {
        width:10.2em;
        position:absolute;
        top:0;
        font-size:80%;
        padding-left:1%;
        padding-right:1%;
        margin-left:0;
        margin-right:0;
}
/* Wir lassen ein wenig Platz an den Seiten durch Einsatz der margin-* Eigenschaften */
#main {
        margin-left:10.2em;
        margin-right:10.2em;
        padding-left:1em;
        padding-right:1em;
}
/* und dann setzen wir jede der Listen an den vorgesehenen Platz */
#list1 {
        left:0;
}
#list2 {
        right:0;
}

Die Idee ist, den Hauptcontainer an den Seiten mittels margin-left und margin-right zuzuschneiden und dann die Seitencontainer unter Benutzung von position:absolute einzupassen. Die obere linke, bzw. obere rechte Ecke bekommt die Koordinaten (0,0).

Um die Browser, die mit so einem fortgeschrittenen Stylesheet nicht umgehen können, davon abzuhalten, es zu laden, können Sie es folgendermassen einbinden: <style type="text/css">@import url('your-stylesheet-url');</style>.


Autor des Originals: Dominique Hazaël-Massieux

Übersetzt von: Simon A. Wilper (SimonAW bei OpenOffice punkt Org)