Hallo,
Es wird ja nun hier auf SELFHTML, SELFHTML Forum und auch in vielen anderen Foren und vielen anderen Seiten "gepredigt", statt Tabellen lieber Divisionen einzusetzen (oder andere Elemente, je nach Einsatzzweck) und diese mit CSS wie gewünscht zu formatieren.
Es wird nichts gepredigt, der gesunde Menschenverstand gewinnt einfach an Bedeutung. Tabellen fürs Layout zu benutzen ist wie... ein Haus zu bauen um Plakate anbringen zu können.
[...] Entwickler wünschen sich, [...] Weiterhin wird sich gewünscht [...]
Nun ja, Menschen sind Gewohnheitstiere. Und wenn man 3/4 der Zeit, seit es das Web gibt, mit Tabellen gearbeitet hat, fällt es natürlich schwer sich von dieser Spalten-und-Zeilen-Denkweise zu verabscheiden.
Wenn man - um einen Footer am Boden eines Dokuments zu platzieren - zusätzliche (sinnfreie, nur zur Formatierung vorhandene) Elemente (z.B. Divisionen) braucht, u.a. einen großen Container und ein "gecleartes" Element, wo bleiben dann die Vorteile? Die Semantik geht kaputt.
Stimmt, CSS erfordert manchmal Elemente fürs Layout. Diese Elemente sind aber fast immer leer und für den Inhalt bzw. ein simples Ausgabeprogramm ohne Bedeutung.
Warum dann nicht eine Tabelle einsetzen?
Tabellen verändern die Bedeutung des Inhalts. Tabellen sind ein Hindernis, wenn es darum geht nicht-tabellarische Informationen an den Menschen zu übermitteln.
Zudem kann ein simples Ausgabeprogramm den Tabelleninhalt nicht benutzerfreundlich Wiedergeben.
Die Vorteile sind nicht nur das schnellere Entwickeln (ja, es _geht_ schneller) und die bessere Browserkompatibilität, sondern es lassen sich immernoch Funktion und Layout voneinander trennen.
Geschwindigkeit zeigt sich in der Regel durch die Erfahrung des Autors.
Trennt man nicht Information und Layout? Das kann die Tabelle bei nicht-tabellarischen Informationen nicht.
Eine andere Möglichkeit, sind optische Effekte (faux columns). Aber wir müssen bedenken: warum wollten wir nochmal von den Tabellen weg? Achja, die Semankik. Aber wo bleibt die, wenn sich die Elemente gar nicht so verhalten, wie wir wollen sondern nur so aussehen? Das tun die Tabellen doch auch.
Diesen Punkt verstehe ich nicht ganz. Bitte bedenke: Was aussieht wie eine Tabelle hat nicht die Bedeutung einer Tabelle. Es ist idiotisch, wenn jemand auf eine Tabelle verzichtet, obwohl tabellarische Daten vorhanden sind. Aber vorhandene Informationen als Tabelle zu gestalten ohne die Bedeutung einer Tabelle zu integrieren ist der entscheidende Unterschied in der Art der Gestaltung.
Einfacher: Während <table> nicht für Zwecke des Layouts geeignet ist, eignet sich display:table; umsomehr.
Nun kann man darüber streiten, ob es "schlimmer" ist, eine Tabelle zur Formatierung einzusetzen oder etliche sinnfreie überflüssige Divisionen in Quelltext zu haben, die letztendlich auch nur der Formatierung dienen, obwohl wir genau _das_ verhindern wollten.
Nun, MarkUp-Bestandteile fürs Layout sind anscheinend notwendig. Ich denke allerdings, dass du mit "etliche" übertreibst. Ein paar sind schon notwendig, aber diese haben Vorteile gegenüber Tabellen, z.B. sparen sie mehr Code und beeinflussen nicht die Art und Qualität des Inhalts.
Ich sage deshalb: benutzt Tabellen, statt CSS, wenn es mit CSS nicht semantischer geht als mit Tabellen. Und bis das W3C und die Browserhersteller es endlich geschafft haben, ein vernünftiges Modell auf die Beine zu stellen, sollten wir in solchen Fällen bei den Tabellen bleiben.
Was der Bauer nicht kennt, frisst er nicht? Fällt mir spontan ein.
CSS ist durchaus ein vernünftiges Modell. Nur befinden wir uns leider nicht mehr im letzte Jahrzeht, als die Browser noch innerhalb weniger Monate große Schritte gemacht haben.
Gruß