Hauptmenü

Untermenü

CSS3 - Mehrspaltige Layouts - Die Details

1. column-count

Damit legt man bei einem Blockelement (gewöhnlich ein <div>) die Anzahl der Spalten fest. Für den Firefox, Safari und Chrome muss man dabei die browsereigenen Formate nehmen.


div.multicolumn {
  -moz-column-count:3;
  -webkit-column-count:3;
  column-count:3;
}

* Wichtig!

Leider arbeiten der Opera und Safari hier nicht besonders sauber. Denn die ziehen gerne noch eine "Leerzeile" mit in die nächste Spalte. Und da kann es abhängig von der Textmenge auch schon mal passieren, dass die letzte Spalte nicht gefüllt ist. Außerdem arbeitet der Opera auch nicht besonders sauber mit den einheitlichen Höhen. Probiert es ruhig mal aus.

PS: Kann durchaus sein, dass die übrigen Browser das ebenfalls so handhaben. Allerdings konnte ich dieses Verhalten bei denen noch nicht sehen. Wer dazu mehr Infos hat, soll mir doch bitte eine Mail schicken. Danke.

2. column-gap

Definiert den Abstand der einzelnen Spalten zueinander, also erste zu zweite, zweite zu dritte und so weiter. Für den Firefox, Safari und Chrome muss man ebenfalls die browsereigenen Formate nehmen. Der Standardwert ist ohne weitere Angaben zur Schriftgröße 1em also 16 Pixel.


div.multicolumn {
  ...
  -moz-column-gap40px;
  -webkit-column-gap:40px;
  column-gap:40px;
}

3. column-rule

Damit kann man die Spalten durch einen senkrechten Strich zusätzlich optisch voneinander trennen. Es ist dabei alles zugelassen, was auch für border gilt. Auch gelten hier dieselben Regeln für die schon erwähnten Browser.


div.multicolumn {
  ...
  -moz-column-rule1px dashed #414141;
  -webkit-column-rule1px dashed #414141;
  column-rule1px dashed #414141; 
}

4. column-width

Kann nicht zusammen mit column-count verwendet werden, da die Anzahl der Spalten aus obiger Angabe errechnet werden. Stehen zum Beispiel 600 Pixel in der Breite zur Verfügung, so erfolgt folgende Berechnung. column-width (200px) + column-gap (40px) = 240px. Also wird der Text in zwei Spalten aufgeteilt (200px +40px + 200px = 440px), da eine dritte nicht mehr hineinpasst.


div.multicolumn {
  -moz-column-width200px;
  -webkit-column-width200px;
  column-width200px ;
}

5. column-span

Hier kann man für einzelne Elemente festlegen, ob sie trotz der Spalten die gesamte Breite einnehmen, also sozusagen aus dem Raster fallen. Leider kommt der Firefox damit nicht klar.


div.multicolumn h2 {
  -webkit-column-spanall;
  column-spanall;
}

Neben all gibt es noch none als möglichen Wert. Dann befindet sich das Element wieder im Spaltenraster. Ist übrigens das Standardverhalten und muss nur angegeben werden, wenn man ein all wieder überschreiben will.

6. Fazit

Eigentlich wäre diese Mehrspalter eine echt tolle Sache ... wenn die Browserunterstützung nicht wieder so mau wäre. Einsetzen kann man es meiner Meinung nach, aber nur ohne Gewähr, dass das Ergebnis dann auch überall identisch ist. In den kommenden Tutorials werde ich dann auf Details eingehen.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt