Einer Homepage ein dreispaltiges Layout ohne Tabellen zu verpassen ist mit CSS nicht besonders schwer. Kniffliger wird es, wenn sich das Design flexibel an die Größe des Browser-Fensters anpassen soll. ZDNet zeigt wie es mit den CSS-Attribute float und clear funktioniert.
Eins der geläufigsten Seitenlayouts im Internet ist derzeit eine dreispaltige Anordnung. Der Hauptinhalt der Site erscheint normalerweise in der mittleren Spalte, auf jeder Seite flankiert von Spalten, die Navigation oder Ähnliches enthalten. Die drei Spalten sind häufig unterhalb einer horizontalen Kopfzeile angeordnet, die sich über die gesamte Breite der Site erstreckt. Ergänzt wird das Layout durch eine entsprechende Fußzeile unten.
Die meisten Web-Designer sind mit den Techniken vertraut, um ein solches Layout mithilfe von Tabellen zu erstellen. Sie können entweder ein Layout mit fester Breite schaffen oder ein „flexibles“, das sich automatisch an die unterschiedlich breiten Browserfenster der User anpasst.
Da man sich jedoch von Layouts auf Tabellen-Basis allmählich verabschiedet, sind viele Web-Designer auf der Suche nach Möglichkeiten, dieses dreispaltige Layout mit den neuen Mitteln der Wahl zu erstellen – XHTML und CSS. Ein Layout mit fester Breite ist mit CSS nicht allzu schwer umzusetzen, indem man absolute Positionierungen benutzt. Aber die flexible Variante ist schon etwas schwieriger in den Griff zu bekommen. Deshalb hier ein Rezept für ein dreispaltiges Layout, das die CSS-Attribute float und clear verwendet, um Flexibilität zu erzielen.
Das Prinzip
Das grundlegende Layout besteht aus fünf div-Elementen, jeweils einem für Kopfzeile, Fußzeile und die drei Spalten. Die div-Elemente für Kopf- und Fußzeile erstrecken sich über die gesamte Breite der Seite. Die div-Elemente für die linke und rechte Spalte haben eine feste Breite und verwenden das float-Attribut, um sie an der linken bzw. rechten Seite des Browserfensters zu verankern.
Das div-Element für die mittlere Spalte zieht sich ebenfalls über die gesamte Breite der Seite, aber der Inhalt dieser Spalte ist flexibel zwischen den div-Elementen der linken und rechten Spalte angeordnet. Da das div-Element der mittleren Spalte keine feste Breite hat, kann es sich frei ausdehnen oder zusammenziehen, wie es Änderungen des Browserfensters jeweils erfordern. Padding-Attribute für die linke und rechte Seite des mittleren div-Elements halten den Inhalt in einer sauberen Spalte zusammen, selbst wenn er sich weiter nach unten erstreckt als eines der beiden div-Elemente am Rand.
Und hier der CSS-Code:
Ein paar Anmerkungen zum Code
Die Reihenfolge der div-Element im HTML-Code ist wichtig. Die linken und rechten div-Elemente müssen vor dem mittleren div-Element stehen, so dass sich die beiden Randspalten an ihre Position am Bildschirmrand bewegen können. Der Inhalt des mittleren div-Elements wird sich dann in den Platz dazwischen einfügen. Falls der Browser erst auf das mittlere div-Element stößt und dann auf eines der beiden div-Elemente für die Randspalten, füllt das mittlere div-Element die Seite bis zum Rand aus und das folgende Float wird darunter positioniert statt daneben.
Die clear: both-Angaben in den Styles div#header und div#footer stellen sicher, dass die schwebenden div-Elemente auf Kopf- oder Fußzeile übergreifen. Die Angabe padding: 1px im div#header-Style dient zur Vermeidung eines ungewünschten Streifens Hintergrundfarbe, der in Netscape oben auf der Seite erscheint, falls padding auf null gesetzt ist.
Die Angabe float: left im div#left-Style sorgt dafür, dass das div-Element ganz links angeordnet wird. Die Angabe width: 150px legt für die Spalte ein Breite fest, aber man kann hier auch einfach einen Prozentwert einsetzen. Im div#right-Style bewirkt die Angabe float: right, dass das div-Element am rechten Rand platziert wird. In diesem Fall drücken die Floats die div-Elemente ganz bis an den Rand des Browserfensters. Wären diese div-Elemente stattdessen in einem anderen div-Element enthalten, würden die Floats sie an die Ränder dieses div-Elements drücken.
Im div#middle-Style ermöglicht es das Fehlen einer clear-Angabe, dass der Inhalt des mittleren div-Elements frei zwischen den beiden Randspalten fließen kann. Die Angabe padding: 0px 160px 5px 160px sorgt rechts und links für ausreichend Platz für die 150 Pixel breiten Randspalten plus 10 Pixel Extraplatz.
Dies ist ein recht grobes und einfaches Beispiel, aber es illustriert die grundlegende Technik für den Einsatz des float-Attributs bei div-Elementen zur Erstellung der Randspalten eines dreispaltigen flexiblen Layouts.
URLs in diesem Artikel:
[1] = http:/