XHTML Tabellen - was ist eine Tabelle, was eher nicht?

bastie

Well-known member
ID: 25115
L
28 April 2006
1.368
190
Hi,

ich beschäftige mich gerade mit der Frage, was unter eine Tabelle fällt und was nicht - (und dementsprechend in ein div-Konstrukt geändert werden sollte)

Meine Beispiele:

1.
eine Tabelle, die auf jeder Unterseite sichtbar ist und die Kontoinformationen des Users enthält:
PHP:
<table>
<tr><td>Konto</td><td>123456 Lose</td></tr>
<tr><td>AP</td><td>123456 APs</td></tr>
</table>

wäre das ein Fall für eine Tabelle? Eigentlich schon, da sie ja nur Daten enthält und nicht zu Designzwecken zählen, oder?

2. Formulare
z.B. das Registrierungsformular:
PHP:
<table>
<tr><td>Benutzername</td><td><input type="text" name="u_name" /></td></tr>
<tr><td>Passwort</td><td><input type="password" name="u_password" /></td></tr>
</table>

wäre das ein Fall für ein DIV-Konstrukt?
weil zum einen ist es ja eine Tabelle mit Daten - nur eben, dass der User dort seine Eingaben machen soll - und das ist der Punkt, der Fragen aufwerfen lässt.

und wie sieht es mit LoginFormularen aus?

Was meint ihr dazu? :)
 
Ich würde sagen das beides Tabellen sind.
Du gibst bei beiden Sachen formatiert, und zwar in Tabellenform, Daten aus.
Wenn du auch erst einmal anfängst ein längeres (Login)Formular per DIV Layer zu erstellen wird es auch schon wieder kompliziert.
Ein einfaches Links / Rechts Floaten wird wahrscheinlich nicht ordentlich funktionieren sobald in einer Zeile z.B. die linke Spalte höher ist als die rechte oder so ;)

Also: Bei so etwas kannst du ruhig eine Tabelle benutzen und musst nicht anfangen mit DIV Layern herumzuspielen, so dass es ordentlich aussieht.


Und bevor ich es vergesse: Ich hoffe das dein Code am Ende anders aussieht und du hier nur schnell in den Code Tags das so reingeschrieben hast (bzgl. Einrücken^^)
 
keine Angst, allein weil ichs ohne Einrückung selbst nicht ordentlich blicke, wird das entsprechend eingerückt ;)

danke für deine Meinung - wie sieht es mit der Eingabemaske vom PN senden aus?
 
[..]danke für deine Meinung - wie sieht es mit der Eingabemaske vom PN senden aus?

Es soll wie eine Tabelle aussehen und sollte dann auch wie eine als (X)HTML Code geschrieben werden ;)
Bei Designelementen sollte man keine Tabelle mehr benutzen da diese dort einfach den Sinn verfehlen. Aber für restliche Sachen die wie eine Tabelle am Ende dargestellt werden sollen und wirklich so etwas wie Spalten & Zeilen (z.B. Legende auf der linken Seite und Eingabemasken auf der rechten bei den Formularen)
 
Prinzipiell würde ich sagen, dass alles, was sich nicht als Plaintext aus dem HTML-Code rauslesen lässt (die HTML Encodings mal abgesehen), nicht in eine Tabelle gehört. Dementsprechend auch keine Formulare, Eingabemasken etc. ;)
 
Ich würde sagen, es kommt ganz auf den Inhalt an.
Einfache Formulare kannst du ohne CSS leicht erstellen, aber wenn es komplexer Formulare werden sollen könnte man ja unter umständen auch auf Tabellen zurückgreifen.

Die Kontostände am Ende könnte man auch mit ner definition list machen.

Grundsätzlich kommen nur Daten in eine Tabelle.
 
Ich würde mich da baserider und Kampforca anschließen.
In Tabellen gehören nur Dinge die auch auf dem Papier eine Tabelle wären.

Edit: Dementsprechen deine Beispiele in DIVs
 
Ich würde mich da baserider und Kampforca anschließen.
In Tabellen gehören nur Dinge die auch auf dem Papier eine Tabelle wären.[..]

Wenn ich auf dem Papier z.B. eine Anmeldung versende würde es auch einen typischen Tabellenaufbau bekommen.
Oder wie würde bei dir eine Erfassung der Daten aussehen?
Eine Liste in der steht welche Daten man braucht und drunter Platz zum schreiben?^^
 
Wenn ich auf dem Papier z.B. eine Anmeldung versende würde es auch einen typischen Tabellenaufbau bekommen.

richtig, einen Tabellenaufbau, das ist das Problem, was sich in uns festgeprägt hat, logischerweise würde man natürlich so eine Form wählen (es gibt aber auch gute andere), aber ein Tabellenaufbau ist nunmal keine Tabelle, dies ist nur eine Designausprägung
 
  • Like
Reaktionen: Xot
richtig, einen Tabellenaufbau, das ist das Problem, was sich in uns festgeprägt hat, logischerweise würde man natürlich so eine Form wählen (es gibt aber auch gute andere), aber ein Tabellenaufbau ist nunmal keine Tabelle, dies ist nur eine Designausprägung

Was ist denn der richtige Sinn einer Tabelle?
Der Tag ist doch dafür da, eine Ausgabe in Tabellenform auszugeben.
Warum sollte man dann also mit DIVs etwas basteln was genau so wie eine Tabelle aussieht obwohl das mit dem TABLE Tag leicht gelöst ist?
Diese Formulare haben nun mal oft den Aufbau eine Spalte für die Bezeichnungen und eine Spalte mit den Eingabefeldern zu haben. Eine Tabelle ist auch im Aufbau: Spalten und Zeilen, das ist doch genau das was man sucht ?
Könntest du (oder wer anders mit der Ansicht das es mit DIVs dargestellt werden sollte) mir mal den Code in DIVs geben für eins der beiden Beispiele oben? Oder am besten noch ein wenig längere Eingabefelder? So wie mehrere es hier also für richtig halten?
 
HTML:
<style type="text/css">
.inputfield{
    width: 200px; /*Länge der Eingabefelder auf 200px setzen*/
}
</style>

<!-- Formular -->
<form>
    <label for="username">Username:</label><input class="inputfield" type="text" name="username" />
    <label for="password">Passwort:</label><input class="inputfield" type="password" name="password" />
</form>

<!-- Kontostände -->
<dl>
    <dd>Konto:</dd>
    <dt>1234567 Lose</dt>
    <dd>AP:</dd>
    <dt>1234567 AP's</dt>
<dl>

und das ganz noch mit etwas CSS auf Vordermann bringen...
 
Zuletzt bearbeitet:
Ok, habe mich nicht richtig ausgedrückt.

Ich meinte damit, dass man zB. das Konto auf einem Stück Papier nicht in eine Tabelle mit Rahmen schreibe würde. (Papier, Geodreieck...)
Genauso wenig, wie man einen Lebenslauf in einer Tabelle schreiben würde.
Die Daten sind zwar nebeneinander und untereinander, aber das hat nichts mit einer Tabelle zu tun! Wie ice-breaker richtig erkannt hat, sieht es nur scheinbar nach einen Tabellenaufbau aus.
=> Kommt nichtin eine html Tabelle

Hingegen kann man eine Liste zB. mit Vor- und Nachteilen in 2 Spalten aufteilen.
=> kommt in html Tabelle


Hoffe jetzt ist es klarer, was ich gemeint habe.

baserider Lösung ist so nach meiner Ansicht richtig.
Ps: Das mit den DIVs kam so spontan. ;) <span> gibts auch noch zb...


@chrissel: Es gibt einen W3C Standard. ;)
Und der ursprüngliche Sinn von Tabellen ist der wie ich ihn oben genannt habe.
 
baserider Lösung ist so nach meiner Ansicht richtig.
Ps: Das mit den DIVs kam so spontan. ;) <span> gibts auch noch zb...

es gibt ja bestimmt 10 verschiedene Möglichkeiten wie man im CSS etwas macht...war nur nen Anhaltspunkt :) klar span könnte man auch verwenden :)

Aber wenn ich nen Lebenslauf darstellen müsste, den würd ich auch als Tabelle machen... -> tabellarsicher Lebenslauf :)
 
Generell alles, was in einer wissenschaftlichen/technischen/* Publikation in Tabellenform dargestellt würde.

Richtig, das passt so.
Man darf ja nicht vergessen, dass HTML ursprünglich dazu gedacht war Wissenschaftliche Dokumente bereitzustellen und die Tags demnach dafür konzeptioniert sind.
 
Aber wenn ich nen Lebenslauf darstellen müsste, den würd ich auch als Tabelle machen... -> tabellarsicher Lebenslauf :)

Wenn du es so machst dann ja:
Code:
Jahr | Tätigkeit
---
1970 | Erschaffung der Unix-Welt
---
1980 | 10jähriges Jubiläum feiern
---
2039 | Untergang der Welt (Zeitreise)

lässt du die Spaltenbezeichnung weg, ist es keine Tabelle mehr und wäre dann nur noch eine Aufzählung
 
Wenn du es so machst dann ja:
Code:
Jahr | Tätigkeit
---
1970 | Erschaffung der Unix-Welt
---
1980 | 10jähriges Jubiläum feiern
---
2039 | Untergang der Welt (Zeitreise)

lässt du die Spaltenbezeichnung weg, ist es keine Tabelle mehr und wäre dann nur noch eine Aufzählung

ok, da gebe ich dir recht. Ansonsten eben per css, aber um den Text auch bei längeren Textpassagen bündig zu bekommen brauchst dann schon etwas mehr markup...
 
wäre das ein Fall für eine Tabelle? Eigentlich schon, da sie ja nur Daten enthält und nicht zu Designzwecken zählen, oder?
Kontodaten: KANN man als Tabelle ausgeben. Findes es für einen Nutzer nur ein bißchen übertrieben die Daten in Tabellenform auszugeben.
wäre das ein Fall für ein DIV-Konstrukt?
weil zum einen ist es ja eine Tabelle mit Daten - nur eben, dass der User dort seine Eingaben machen soll - und das ist der Punkt, der Fragen aufwerfen lässt.
Registrierungsformular: Das ist weder ein Fall für ein DIV-Konstrukt, erst recht keins für ein TABLE-Konstrukt. HTML bietet mit label, fieldset und legend ausreichend Elemente, um Formulare zu strukturieren.
 
Kontodaten:
Registrierungsformular: Das ist weder ein Fall für ein DIV-Konstrukt, erst recht keins für ein TABLE-Konstrukt. HTML bietet mit label, fieldset und legend ausreichend Elemente, um Formulare zu strukturieren.

ganz genau :) s. oben, wobei fieldset und legend grade im IE nicht so toll aussehen, aber mit biss lcss bekommt man es annähernd hin