Wir hatten ja hier schon mal über Tabellen in einer Übersicht diskutiert. Was wir dabei übersehen hatten, dass selbst die Threadübersichten keine Tabellen sind.
Habt ihr eine Idee, was sich die Macher des Templates dabei gedacht haben?
Denn welche Schwierigkeiten das macht, mit DIV-Elementen eine Tabelle Nachzubauen, ist ja bekannt, kann man sich aber auch im CSS anschauen (wo dann die Elemente z.T. die Klasse „td“ bekommen).
Tja, manche Entwickler denken wohl, dass Tabellen grundsätzlich böse sind und vermeiden diese nun vollständig, obwohl sie angebracht wären. Gefährliches Halbwissen eben.
Wenn die Frage ist: Semantisches Markup oder Tabellen-Struktur, dann ist oft ein semantisches Markup vorzuziehen. Ob jetzt die CSS Klassen „td“ heißen oder nicht ist ja vollkommen irrelevant.
Das sagt übrigens das W3C, also der offizielle „Hüter“ des HTML.
Tables must not be used as layout aids. Historically, some Web authors have misused tables in HTML as a way to control their page layout. This usage is non-conforming, because tools attempting to extract tabular data from such documents would obtain very confusing results. In particular, users of accessibility tools like screen readers are likely to find it very difficult to navigate pages with tables used for layout.
Vorteile:
[ul]
[li]Schnellere Anzeige im Browser[/li][li]Semantisches Markup entspricht eher der Semantik der Seite[/li][li]Bessere Trennung Layout von HTML[/li][/ul]
Nachteile:
[ul]
[li]Komplexer zu bauen und zu warten[/li][/ul]
Ich bin da eher etwas neutraler. Ich stimme nicht zu 100% zu, dass Tabellen zur Anzeige der Threads ungeeignet sind. Ich finde sogar, dass genau das gerade den Zweck von Tabellen erfüllt, nämlich die Anzeige von tabellarischen Daten. Es werden Erstelldatum, Autor, Titel, etc. tabellarisch dargestellt.
Meine Meinung
Den Einwurf verstehe ich nicht. Eine Tabelle ist ein semantisches Markup für eine Datenstruktur. Wenn im CSS Elemente nach ihrer semantischen Bedeutungen (ich bin eine Zelle) benannt werden, ist das ein deutliches Zeichen das etwas falsch läuft.
Wie gesagt, mir geht es um eben Semantik, ich spreche nicht von einer Layouttabelle, da sind wir alle einer Meinung. Ich sehe Tabellenüberschriften und eine Liste mit Daten, in einer zweidimensonalen Struktur, für genau diesen Zweck existieren in HTML Tabellen, wie auch das w3c an der gleichen Stelle wo dein Zitat steht, sagt.
The table element represents data with more than one dimension, in the form of a table.
Es überwiegen die Nachteile:
CSS/HTML Daten werden mehr
CSS wird anfälliger gegenüber alten Browser (z.b. die display Eigenschaften)
Die Daten könnten nicht mehr automatisch geparst werden, da der 2 Dimensonale Kontext völlig verloren geht
Thor hat die richtige Vermutung nehme ich an. Es herrscht ein Zwang Tabellen zu vermieden ohne sich über Semantik Gedanken zu machen. Wobei selbst bei der Layouttabellen Geschichte man durchaus Pro Tabellen diskutieren kann. Es gibt eine Aussage eines HTML Entwicklers aus der Frühzeit (die ich leider nicht finde), dass Tabellen durchaus als Layoutmittel erfunden wurden. Es gab aber auch keine Alternative.
Aber in Fenstermanager werden die Elemente auch gerne in einem „Grid“ angeordnet. D.h. man könnte eine Tabelle auch als Gitter sehen um Elemente anzuordnen. In der Newsgroup de.comm.infosystems.www.authoring.misc ist das durchaus eine Meinung die vertreten wird. Dieser Artikel beschreibt ungefähr die Position dieser Anhänger: CSS should not be used for layout und ich kann nicht sagen, dass er völlig unlogisch ist (wobei ich seit 6 Jahren kein Tabellenlayout mehr gemacht habe)
Ganz im Gegenteil. Auch IDs und Klassennamen sollten - wie alles im HTML-Code - nach der semantischen Bedeutung benannt werden.
Ein div#right ist Unfug, weil es wieder Layoutinformationen enthält, div#Sidebar wäre semantisch und gut.
Was Du meinst ist, wenn man ein Element, was keine Tabellenzelle ist, wie eine Zelle benennt (div#td), dann läuft was falsch, das ist richtig. Wenn die Semantische Bedeutung des Namens nicht mit der semantischen Bedeutung des Elements einher geht - dann ist was falsch.
Es herrscht ein Zwang Tabellen zu vermieden ohne sich über Semantik Gedanken zu machen.
Richtig, man sagt sich heutzutage, Tabellen seien BÖSE, man mache jetzt alles mit divs; Tabellen sind out, divs sind cool.
Natürlich völliger Schwachsinn.
Es gibt eine Aussage eines HTML Entwicklers aus der Frühzeit (die ich leider nicht finde), dass Tabellen durchaus als Layoutmittel erfunden wurden. Es gab aber auch keine Alternative.
Das könnte ich mir durchaus vorstellen. Aber HTML war noch nie dafür gedacht, das Aussehen zu definieren. Es gab nur noch kein CSS. Man hat dann Tags für die physische Inhaltsauszeichnung eingeführt.
man könnte eine Tabelle auch als Gitter sehen um Elemente anzuordnen.
Das geht aber nicht mit dem Sinn von HTML einher, damit nur die logische Auszeichnung zu machen.
Man bräuchte für sowas „CSS-Tabellen“.
HTML-Tabellen fürs Layout sind Käse - so oder so. Da kann befürworten, wer will. Die Idee mit dem Grid ist aber durchaus nachvollziehbar - aber eben nicht mit HTML.
Ach so, was man auch immer schön machen kann, um zu sehen ob eine Seite sematisch gut aufgebaut ist, ist wenn man sich die Seite mal im Firefox ohne CSS Stil anschaut (im Menü Ansicht > Stil > kein Stil)
Das reine HTML offenbart dann die Struktur. z.b. das die Threadübersicht, so wie sie jetzt markiert ist, gerne eine Defintionsliste wäre. Wobei ich aber nach wie vor eine Tabelle vorziehen würde. Ganz allgemein ist das Template nicht von jemanden entworfen worden der Semantik wirklich verstanden hat, sonst würde man viel mehr HTML Tags sehen, wie z.b. em für die Zitate