4.7 Layoutentwurf "2col_left_vlines"
Im folgenden Beispiel soll es darum gehen, die Flexibilität des YAML-Frameworks bei der Erstellung verschiedenster Layoutvariationen aufzuzeigen. Ausgangsbasis für die folgenden Beispiele ist das 3-spaltige Basis-Layout, des YAML-Framworks.
In diesem ersten Layoutentwurf mit der Bezeichnung 2col_left_vlines werden folgende Anforderungen gestellt:
- 2 Content-Spalten (Navigation links #col1 und Hauptinhalt rechts #col3)
- Beide Spalten mit flexiblen Breiten
- grafikfreier Spaltentrenner (graue Punktlinie) als Trennlinie zwischen den Spalten, dabei soll zwischen Trennlinie und Header sowie zwischen Trennlinie und Footer ein Abstand von 1em verbleiben.
- Horizontale Hauptnavigation "Sliding Door"
- Drucklayout: Es sollen nur die Hauptinhalte in der Spalte #col3 ausgegeben werden.
layout_storage/layout_2col_left_vlines.html
Layoutentwurf im Detail
Das zentrale Stylesheet layout_2col_left_vlines.css beinhaltet folgende CSS-Bausteine:
@import url(main/base.css);
@import url(modifications/basemod.css);
@import url(modifications/basemod_2col_left_vlines.css);
@import url(navigation/nav_slidingdoor.css);
@import url(main/content.css);
@import url(print/print_003.css);
Die Layoutgrundlage, das 3-spaltige Layout wird über die Bausteine base.css und basemod.css eingebunden. Die Modifikationen für das 2-spaltige Layout finden sich in der Datei basemod_2col_left_vlines.css.
/* Rechte Spalte abschalten */
#col2 { display:none; }
#col2_content { display:none; }
/* rechten Randabstand anpassen */
#col3 { margin-right:0; border-right:0; }
/* Spaltentrenner */
#col3 {border-left: 2px #ddd dotted;}
2 Spalten: Die rechte Spalte #col2 und deren Inhalt #col2_content werden abgeschaltet. Mit dem dritten Befehl wird der rechte Rand der mittleren Spalte #col3 angepasst. Damit ist das 2-Spalten-Layout fertig.
Spaltentrenner: Zusätzlich wird in diesem Beispiel eine 2 Pixel breite Punktlinie als vertikaler Spaltentrenner gefordert. Dies geschieht mittels der CSS-Eigenschaft border für die statische Spalte #col3. Der geforderte Abstand der Trennlinie von Header und Footer ist bereits im Basislayout ( siehe basemod.css ) über die CSS-Definitionen der Container #main (oberes Padding) und #footer (oberer Margin) vorhanden.
Anpassungen für den Internet Explorer
Die Anpassungen für den Internet Explorer sind in der Datei iehacks_2col_left_vlines.css im Verzeichnis css/explorer abgelegt.
/* LAYOUT-UNABHÄNGIGE ANPASSUNGEN -----------------------------
*/
@import url(../main/iehacks.css);
/* LAYOUT-ABHÄNGIGE ANPASSUNGEN -------------------------------
*/
@media screen
{
/* IE5.x kollabierendes padding bei #main abfangen */
* html #main {margin-top: 1em; padding-top: 0; }
}
Als erstes wird die globale Anpassungsdatei iehacks.css eingebunden.
IE 5.x und IE6 "ignorieren" bei diesem Layout das obere Padding an #main, welches für den Abstand des Headers von der vertikalen Trennlinie sorgt. Um dies zu korrigieren, wird im IE stattdessen die Eigenschaft margin-top: 1em; verwendet, welche der IE korrekt interpretiert.