4.9 Layoutentwurf "3col_abb"

Ausgangsbasis für die folgenden Beispiele ist das 3-spaltige Basis-Layout, des YAML-Frameworks.

In diesem Layoutentwurf mit der Bezeichnung 3col_abb werden folgende Anforderungen gestellt:

  • 3 Content-Spalten
    • Navigation links #col1,
    • zwei gleichrangige Inhaltsspalten #col2 und #col3 nebeneinander
  • flexibles Layout, alle Spalten flexibel
  • keine Spaltentrenner
  • Horizontale Hauptnavigation "Sliding Door "
  • Drucklayout: Es sollen beide Inhaltsspalten ausgegeben werden.

layout_storage/layout_3col_abb.html

Layoutentwurf im Detail

Das zentrale Stylesheet layout_3col_abb.css beinhaltet folgende CSS-Bausteine:

@import url(main/base.css);
@import url(modifications/basemod.css);
@import url(modifications/basemod_3col_abb.css);
@import url(navigation/nav_slidingdoor.css);
@import url(main/content.css);
@import url(print/print_abb.css);

Die Layoutgrundlage, das 3-spaltige Layout wird über die Bausteine base.css und basemod.css eingebunden. Die Modifikationen für das abb-Layout finden sich in der Datei basemod_3col_abb.css.

Beachte: Texte werden üblicherweise von links nach rechts gelesen. Textbrowser orientieren sich jedoch nicht an der Position der Inhalte am Bildschirm sondern an der Reihenfolge der DIV-Container im Quelltext. Im Quelltext kommt die rechte Spalte #col2 vor statischen Spalte #col3. Am Bildschirm müssen diese beiden Spalten also vertauscht werden, sodass #col2 in die Mitte rückt und #col3 zur rechten Randspalte wird.

Umsetzung: Die Lösung liegt in den Möglichkeiten der freien Spaltenanordnung, genauer gesagt in der Spaltenreihenfolge 1-2-3. Die ehemals rechte Spalte #col2 erhält ein float:left; und rutscht damit direkt neben #col1 — sie wird damit zur mittleren Spalte. Die ehemals mittlere Spalte #col3 schieben wir durch ihren Margin einfach an den rechten Rand — sie ist ab sofort unsere rechte Spalte.

#main { padding: 0; }

/* linke Spalte */
#col1 { width: 22.5%; margin: 0px; }

/* Rechte Spalte */
#col2 { width: 38.75%; float:left; margin: 0px;}

/* Mittlere Spalte und rechte Spalte sind gleich breit:
   Spaltenbreite = (100% - 22,5%) / 2 = 38.75% */
#col3 { margin-left: 61.25%; margin-right: 0px; }

Anpassungen für den Internet Explorer

Die Anpassungen für den Internet Explorer sind in der Datei iehacks_3col_abb.css im Verzeichnis css/explorer abgelegt.

/* LAYOUT-UNABHÄNGIGE ANPASSUNGEN ----------------------- */
@import url(../main/iehacks.css);

/* LAYOUT-ABHÄNGIGE ANPASSUNGEN ------------------------- */
@media screen
{

...

/*--------------------------------------------------------*/
/* Bug: 3-Pixel-Jog des Internet Explorers
**
/* Hides from IE-mac \*/
* html #col3 { height: 1%; }
* html #col2 {margin-right: -3px;}
* html #col3 { margin-left: 60.25%; margin-right: 0; }
/* End hide from IE-mac */
/*--------------------------------------------------------*/

Als erstes wird die globale Anpassungsdatei iehacks.css eingebunden. Als layoutabhängige Anpassung erfolgt die Beseitigung des 3-Pixel-Bugs des Internet Explorers (siehe Abschnitt 3.5: CSS-Anpassungen für den Internet Explorer).