Dienstag,
11. November 2008

Der IE8 ist noch nicht einmal veröffentlicht, scheint aber dennoch für einen nicht gerade kleinen Kreis an Webentwicklern bereits zum Heilsbringer zu avancieren. Auslöser der Euphorie ist, dass der IE8 verspricht (ob er es hält werden wir sehen), den CSS 2-Standard nun vollständig und fehlerfrei zu unterstützen, was bedeutet, dass CSS-Tabellen (display:table, display:table-cell, display: table-row) salonfähig werden.

Und hast Du nicht gesehen, schon überschlägt man sich hier, da und dort mit Artikeln, die vom Beginn einer neuen Webdesign-Ära sprechen, in der die ach so komplizierten Layoutkrücken, welche noch auf Floats oder absoluter Positionierung basieren, nur noch ein Schattendasein fristen werden.

Licht und Schatten

Rein gefühlsmäßig entspringt der Hype maßgeblich der Tatsache, dass es mit CSS-Tabellen endlich relativ problemlos möglich sein sollte, CSS Layouts mit gleichlangen Spalten zu erzeugen. Vor zwei, drei Jahren - wo es fast ausschließlich einfache CSS-Spaltenlayouts gab, fand ich diese Idee auch toll. Doch seither hat sich im Webdesign doch einiges getan. Alle Welt baut Grids, Techniken für gleichlange Spalten gibt es zu Hauf, sowohl als Fake-Lösungen (faux columns) als auch ganz real per CSS (siehe hier und da). Sicher, sie haben ihre Nachteile — aber im Grunde erfüllen sie ihren Zweck, wenn man die Funktionalität benötigt. CSS-Tabellen können hier Webdesignern in Zukunft das Leben wirklich noch etwas einfacher machen, den Status eines Erlösers bekommen sie deswegen jedoch sicher nicht. Denn das Gute an all den bisher verwendeten Workarounds ist, dass sie weitestgehend auch mit älteren Browsergenerationen funktionieren. Bei CSS-Tabellen sieht das anders aus. Zwar hinkt auch hier in erster Linie der Internet Explorer hinterher, jedoch sind auch Firefox, Safari & Opera bis heute nicht 100%-ig einer Meinung, was die Detail der Darstellung eines Containers mit der Eigenschaft display:table betrifft.

Ein weiterer, schwerwiegender Nachteil ist, dass es bei Tabellen (und ebenso bei CSS-Tabellen) keine Möglichkeit gibt, die Reihenfolge in der Spalten in der Bildschirmausgabe per CSS zu beeinflussen. Die Codereihenfolge wird streng und unverändert in die Präsentation übernommen. Bei Tabellendaten ist das auch nicht notwendig, bei der Layoutgestaltung führt es jedoch zu massiven Einschränkungen gegenüber den aktuellen Float-Lösungen. Dabei will ich garnicht von den SEO-Fanatikern sprechen, sondern vielmehr den Blick auf Screenreader und Textbrowser lenken. Mit CSS-Tabellen verlieren wir die Möglichkeit, die einzelnen Layoutelemente im Code und in der Präsentation unabhängig zu platzieren. Ich halte diesen Punkt für weitaus wichtiger als die native Unterstützung gleichlanger Spalten, weshalb für mich Floats weiterhin das Maß der Dinge bleiben.

Und nicht zuletzt sind da die beiden Veteranen, Internet Explorer 6 & 7, die vermutlich auch in den nächsten Jahren noch maßgebliche Marktanteile verbuchen werden. Wie bringt man diesen Browsergeneration die CSS-Tabellen nahe? Da fangen wir dann also doch wieder an zu basteln und zu hacken. Denn um auch Nutzer dieser Browser wenigstens in den Genuss der Mehrspaltigkeit kommen zu lassen, müssten die Tabellenspalten speziell für die alten IE’s wieder in floatende Container zurückverwandelt werden.

Gefühlte 5 Jahre zu spät

Ich mag mich natürlich irren, aber ich denke, CSS-Tabellen kommen einfach zu spät. Die Technik hat unbestritten ihren Reiz, doch ist es nunmal so, dass CSS2 schon ein paar Jahre existiert und die Welt während dieser Zeit nicht regungslos auf die Ankunft der CSS-Tabellen gewartet hat. Es gibt eine Vielzahl ausgereifter Layouttechniken, die sich relativ problemlos selbst im veralteten IE5.x fehlerfrei anwenden lassen. Und genau da können CSS-Tabellen nicht punkten, denn nur die kommende IE-Generation wird damit umgehen können.

CSS-Tabellen werden ihren Platz im Webdesign-Alltag finden, da bin ich mir sicher. In einfachen Grid-Frameworks wie 960.gs könnten sie die bisher verwendeten Floats durchaus ablösen. Bei Verwendung dieses Frameworks stimmen Code- und Präsentationsreihenfolge auch jetzt schon zwingend überein, weshalb in diesem Fall technischen Einschränkungen der CSS-Tabellen nicht spürbar werden, die gleichhohen Spalten aber sogar einen echten Mehrwert bieten. Schon bei Blueprint CSS sieht es u.U. anders aus, denn Blueprint stellt Klassen zum Verschieben von Elementen innerhalb des Grids zur Verfügung (mittels positiver/negativer Margins), was in Verbindung mit Floats wunderbar funktioniert, mit CSS-Tabellen aber vermutlich schwierig werden würde.

Eine Revolution oder auch einen signifikanten Entwicklungsschub in Sachen CSS-Layouts sind CSS-Tabellen in meinen Augen daher nicht. Sie bringen zu große Probleme mit (Spaltenreihenfolge in Code und Präsentation), die mit den herkömmlichen Bordmitteln (Floats) seit Jahren getrost als gelöst bezeichnet werden dürfen, zudem ist die Browserunterstützung nur in der aktuellsten Generation gewährleistet. Sie sind aber eine willkommene Alternative in dem einen oder anderen konkreten Anwendungsfall.

 


Du kannst die Kommentare zu diesen Eintrag durch den RSS 2.0 Feed verfolgen. Du kannst einen Kommentar schreiben, oder einen Trackback auf deiner Seite einrichten.

Dieser Eintrag kann nicht mehr kommentiert werden.