Gunther: Tabellen oder Divsuppe. Was ist besser?

Beitrag lesen

Hallo Mathias,

auch wenn ich häufig mit deiner Meinung & deinen Ansichten übereinstimme, so muss ich dir hier doch ein wenig widersprechen.

Idealerweise verwendet man weder das eine noch das andere. Das Markup zu ändern, um ein bestimmtes Layout verwirklichen zu können, ist schlecht und sollte nur als allerletzte Möglichkeit gesehen werden.

Mal allgemein: Das ist glaube ich die Lebenslüge der CSS-Layout-Freunde. »Idealerweise« trifft es genau.

Das sind nicht die "CSS-Layout-Freunde", sondern wenn überhaupt die "Puristen", bzw. die "Minimalisten".

Wenn man ein komplexes Layout nach den Regeln der Kunst baut, braucht man oft sehr viele Angriffspunkte für Styles im Markup. Das führt dazu, dass man divs und spans einfügt, die größtenteils strukturell keinen Sinn ergeben.

Hier ist schon der erste entscheidende Punkt: Man muss differenzieren zwischen Elementen, die für die Umsetzung eines Layouts zwingend erforderlich/ notwendig sind, und solchen, die der Autor aus Unkenntnis überflüssigerweise einfügt.

Mit semantischem Code haben sie daher nichts zu tun, ich bezeichne sie gerne als Präsentationsgliederungen. Sie strukturieren den Inhalt nur in der Hinsicht, später im CSS adressierbar zu sein. Vor allem werden sie für ein bestimmtes Layout eingefügt, damit werden Markup und Stylesheet verschränkt, anstatt dass sie unabhängig voneinander bleiben und das Stylesheet ohne Änderung am Markup auswechselbar ist.

Was kann an einem DIV-Element nicht semantisch sein? Auszug aus SELFHTML Allgemeines Block-Element:"Dieses allgemeine Element bewirkt nichts weiter als dass es in einer neuen Zeile des Fließtextes beginnt. Ansonsten hat es keine Eigenschaften. Es ist dazu gedacht, um mit Hilfe von nach unten CSS formatiert zu werden."
Wo, wenn nicht im Markup sollen denn sonst die per CSS zu strukturierenden Elemente stehen?

Die vielgelobte Trennung von Textauszeichnung und Präsentationslogik ist damit Makulatur.

Wer lobt die? Geht es nicht vielmehr um die Trennung von Elementen und deren Auszeichnung? Die Präsentationslogik (wobei Logik hier imho schon der falsche Ausdruck ist) muss mangels fehlender Alternativen ja zwangsläufig im  Markup stehen. Ich glaube, dass man diesen Aspekt bei der Erfindung von CSS außer Acht gelassen hat. Ein weiterer kurzer Auszug aus SELFHTML Stylesheets (CSS):"Dieses Kapitel beschreibt die HTML-Ergänzungssprache der Cascading Stylesheets, mit der Sie HTML-Elemente exakt formatieren und positionieren können.". Die Betonung liegt klar auf "HTML-Elemente" - ergo: wo keine solchen sind, kann man mit CSS auch nichts machen. Hier fehlt also eher eine dritte Sprache, nämlich eine Layoutsprache. In Ermangelung einer solchen, wird also aktuell CSS (mit dazugehörigen HTML-Elementen) als "Ersatz-Krücke" benutzt. Scheinbar hat man ja auch beim W3C erkannt, dass sich nicht alle (An)Forderungen, die man so gerne an CSS stellt, mit den bisherigen Mitteln umsetzen lassen. Man denke nur etwa an das Multi-column layout Modul in CSS 3.

Es ist also nicht die »allerletzte Möglichkeit«, sondern leider Gang und Gäbe bei anspruchsvolleren Layouts. Die Frage ist also nicht, wie man komplett auf Präsentationsgliederungen im Markup verzichten kann, sondern wie man sie möglichst reduziert und abstrakt hält.

Wie bereits gesagt, glaube ich nicht, dass du eine "Präsentationsgliederung" aus dem Markup heraushalten kannst - aktuell jedenfalls nicht (und meiner Meinung nach auch in absehbarer Zukunft nicht).

Die Entwicklung hin zur div-Suppe sah man schon, als die ersten großen Sites auf CSS-Layout umstiegen. Heutige große Sites arbeiten meist mit CSS-Layout, aber von aufgeräumtem, semantischen Markup sind sie weit entfernt. Selbst der CSS Zen Garden hatte damals gezeigt: Jedes beliebige anspruchsvolle CSS-Layout mit demselben Code umsetzen geht nur, wenn dieser voll von Präsentationsgliederungen ist, die Bereiche bloß markieren, damit Style-Regeln greifen können. Sicherlich ist das nicht einem prinzipiellen Problem zuzuschreiben, in der Regel lassen sich Optimierungen vornehmen, man denke an den Focus-Redesign.

Wo ist eigentlich das Problem? DIV sind sinnentleerte Elemente, die der Präsentationsgliederung dienen. Zehn DIVs mehr oder weniger in einem HTML-Dokument tuen doch keinem weh (solange die Standardkonformität gewahrt bleibt). Der normale User interessiert sich doch wohl auch eher für die ihm präsentierten Inhalte, als für das Markup einer Seite. Wenn aber dadurch erreicht werden kann, dass die Inhalte auf den verschiedensten Ausgabemedien jeweils möglichst optimal dargestellt/ rübergebracht werden können, ist imho das eigentliche Ziel erreicht.

Es lässt sich wohl feststellen, dass niemand in der Frage den Stein der Weisen gefunden hat.

Stein der ... wer oder was? Ja gibt's denn sowas? ;-)

Gruß Gunther