position:static, Default)float)Wir haben nun das Layout von
http://wob11.de in mehrere kleine Kästen unterteilt. Diese Kästen sind alle neben- bzw. untereinander angeordnet, aber sie hätten auch völlig unabhängig voneinander sein und sich gegenseitig überlagern können. Im vorliegenden Layout ist das nicht gegeben, was für den Einstieg ganz gut ist. Auch sind keine verschachtelten Kästen notwendig.
Es gibt mehrere Möglichkeiten, die Kästen im CSS-Layout zu positionieren:
position:static, Default)float)position:relative und position:absolute)Man sollte die Positionierung mit position:absolute nicht einsetzen, wenn der entsprechende Kasten auch mit position:static gestaltet werden kann. Je einfacher das Layout mit CSS gestaltet wird, desto weniger Bugs auftauchen und desto barrierefreier wird das Layout. Kurz: je einfacher, desto robuster!
Eine weitere Möglichkeit mit position:fixed funktioniert nur in manchen Browsern.
Bei der Programmierung bekommt jeder einzelne Kasten (DIV) in dem Layout eine Kennung (ID). Wenn diese Kennung eindeutig ist, dann lassen sich über entsprechende Angaben in einer CSS-Datei ebenfalls eindeutige Layout-Angaben zuweisen. Beispielsweise, wenn wir für einen Kasten, der die Kopfzeile beinhalten soll eine Kennung "kopf" zuweisen, kann im CSS ebenfalls eine Deklaration vorgenommen werden, die nur die Kennung "kopf" definiert. Anderen Bereiche sind von diesen Angaben völlig unabhängig.
Im HTML:
<div id="kopf">
... Inhalte der Kopfzeile ...</div>
Im CSS:
#kopf {
margin:0px;
height:80px;
}
Es gibt in CSS sehr viele verschiedene Maßeinheiten. Angefangen mit Pixel und Punkt über Millimeter und anderen Einheiten bis hin zu relativen Angaben mit Prozent und em (Breite des Buchstaben m des Benutzeragenten). Um ein barrierefreies Webdesign mit CSS zu erzielen, ist es notwendig mit relativen Angaben zu arbeiten. Das gilt auch für das Layout. Grundsätzlich ist für Text immer die Einheit em zu benutzen. Zu Layout-Zwecken ist em aber nur dann sinnvoll einzusetzen, wenn der zu definierende Kasten Text enthält. Wenn ein Kasten keinen Text enthält, sondern beispielsweise nur Grafik, dann sind je nach dem %-Angaben (insbesondere Breite des Kastens, sowie Abstände nach links und rechts, sowie px-Angaben anzuwenden:
em insbesondere für die Formatierung von Text.em für Maßangaben des Kastens geeignet.px insbesondere für Layout und Grafiken.Beim Layouten geht es erst mal darum die Kästen, die wir aus dem grafischen Design bekommen haben, alleine mit CSS-Eigenschaften nachzubilden. Es geht dabei nur um die Kästen, nicht um die Inhalte! Wenn wir mit der Kopfzeile beginnen sollen, dann hat diese eine bestimmte Breite, eine bestimmte Höhe und möglicherweise auch bestimmte Abstände nach oben, rechts, unten und links. Grundsätzlich sind diese Maßangaben die einzigen Maßangaben, die man zum Layouten braucht.
position:static, Default)Diese Positionierungsangabe funktioniert ganz einfach. Im Prinzip muss dem Kasten nur eine Breite und/oder eine Höhe zugewiesen werden, also beispielsweise:
width:100%; und/oderheight:80px;Es kann sogar auf diese Angaben verzichtet werden, aber mindestens eine Angabe wird i.d.R. notwendig sein. Die Angabe position:static; ist nicht erforderlich, da diese Angabe der Default-Wert eines jeden Kastens ist.
Wenn keine besonderen Angaben gemacht werden, dann wird ein Kasten dieser Art linksbündig im Fließtext angezeigt. Hat der Kasten eine Breite und ist der verfügbare Platz im Fließtext nicht mehr ausreichend, so wird der Kasten unterhalb des Fließtextes dargestellt.
Mit margin kann zusätzlich noch der Abstand des Kastens zum restlichen Fließtext definiert werden.
Für unsere Beispielseite
http://wob11.de wurde im wesentlichen diese Technik verwendet.
Nur zu Demonstrationszwecken!
Ein einfaches Modell: minimaler Gestaltungsaufwand und sehr robust.
height:80px;
margin:0px;margin:5px 0px 0px 0px;margin:10px 0px 0px 180px;margin:0px 0px 0px 180px;position:static ist nicht erforderlich.height erhalten.margin:0px 0px 0px 180px;Das grundlegende Layout sieht im CSS wie folgt aus:
#kopf { margin:0; height:80px; }
#hauptnav { margin-top:5px;}
#rubrik { margin: 10px 0px 0px 180px; }
#inhalt { margin-left:180px; }
#fuss { margin-left:180px; }
Für das grundlegende Layout der Seite sind keine weiteren Angaben erforderlich. Natürlich muss das HTML entsprechend stimmen. Für das Beispiel sind nur folgende Angaben in der HTML-Datei erforderlich:
<div id="kopf">Kopfzeile</div>
<div id="hauptnav">Hauptnavigation</div>
<div id="rubrik">Rubrik</div>
<div id="inhalt">Inhalt der Seite</div>
<div id="fuss">Fußleiste</div>
Um die Darstellung besser nachvollziehbar zu machen, habe ich im Beispiel den einzelnen Kästen noch eine Hintergrundfarbe mittels background zugeordnet.
Es fehlt noch die "Zweitnavigation", die im nächsten Abschnitt beschrieben wird.
float)Die Positionierung mit float ist ebenfalls eine relative Positionierung mit der aktuellen Position um Fließtext als Bezugspunkt. Mit float:left und float:right kann man angeben ob dieser Kasten linksbündig oder rechtsbündig positioniert sein soll. Diese Positionierungsangabe kennzeichnet sich durch zwei besondere Merkmale aus. Sie wird
Zu 1.: Auf der Beispielseite wird ein Kasten ("Zweitnavigation") mit float:left; erzeugt, die jedoch nicht in einem anderen Kasten verschachtelt ist. In diesem Fall wird der mittels float erzeugter Kasten am linken Bildschirmrand dargestellt.
Nur zu Demonstrationszwecken!
Drei Zeilen für die gesamte Website.
float:left;
width: 160px;
margin-top:
10px;float kann an fast beliebiger Stelle eingesetzt werden.float wird immer auf gleicher Höhe und direkt neben dem freischwebenden Kasten angezeigt. Die Verwendung von margin im Inhaltsbereich bezieht sich jedoch auf den linken Seitenrand!Im HTML müssen wir zwischen "Hauptrubrik" und "Inhalt" nun noch folgende Zeile einfügen:
<div id="zweitnav">Zweit navigation</div>
zu 2.: Wenn nicht gewünscht wird, dass der nachfolgende Text unterhalb des freischwebenden Kastens weiterfließt, dann ist ein weiterer Kasten für den nachfolgenden Text sinnvoll. Auch dies wurde auf der Beispielseite vorgenommen, indem der freischwebende Kasten die Breite 160px erhält und die drei rechts positionierten Kästen ("Rubrik", "Inhalt" und "Fussleiste") alle einen Abstand von 180px zum linken Rand des Bildschirms erhalten. So kann es nicht zu unerwünschten Umbrüchen kommen.
Damit ist das Layout von
http://wob11.de zunächst abgeschlossen.
Der Vollständigkeit halber sei noch auf weitere Möglichkeiten der Positionierung von Kästen hingewiesen:
position:relative erlaubt eine relative Positionierung ähnlich wie position:static, nur dass man zum vorherigen Kasten weitere Abstände mittels top, left und right definieren kann.position:absolute erlaubt Ihnen Kästen zu definieren mit einem bestimmten Abstand zum oberen und einer der seitlichen Ränder des Fensters zu definieren.position:fixed erzeugt ein Kasten, der an der angegebenen Position bleibt und mit der Seite nicht gescrollt wird (funktioniert nicht in allen Browsern)Wichtig: ein relativ positionierter Kasten orientiert sich immer an dem zuletzt relativ positionierten Kasten. Wenn keine relativ positionierten Kästen vorher definiert werden, dann orientiert sich die Positionierung des aktuellen Kastens an dem oberen Seitenrand. Wenn unmittelbar vor dem aktuellen Kasten ein absolut positionierter Kasten vorkommt und davor wiederum relative Kästen, dann ist der Bezugspunkt des neuen relativ positionierten Kastens das Ende des zuletzt relativ gesetzten Kastens. M.a.W.: Absolut positionierte Kästen lassen den Bezugspunkt für einen nachfolgenden Kasten unverändert.
Für das Layouten sind im Wesentlichen die folgenden CSS-Eigenschaften erforderlich:
position oder float,height undmargin oder width.Während der Testphase sollten die einzelnen Kästen mit unterschiedlichen Hintergrundfarben (background) belegt sein. Kanten (border) und Innenabstände (padding) führen in manchen Browsern zu unerwünschten Ergebnissen!
Auch wenn zum Nachvollziehen es sinnvoll erscheint mit den vorgesehenen Inhalten innerhalb der Kästen zu arbeiten, kann dies möglicherweise zu Problemen führen, nämlich dann, wenn zu den Formatierungseigenschaften übergegangen wird.
Es empfiehlt sich deshalb mit ganz einfachem Dummy-Text zu arbeiten und ggf. mit Farben.
Lesen Sie,
warum ich mich an die Standards halte und warum das Layout mit
Cascading Style Sheets statt Tabellen oder Frames gestaltet wurde. Sollten Sie Probleme mit dem Layout haben, so finden Sie in der
Liste standardkonformer Browser Links zu entsprechenden Download-Seiten.
Die
Gesamtübersicht dieses Webauftrittes erreichen Sie jederzeit über das AccessKey-Pad mit Alt+6.
Verwenden Sie
Tastenkürzel, etwa Alt mit der entsprechenden Zahl, um auf diesem Webauftritt zu navigieren.