Ich erstelle ein Formular, welches per CSS formatiert werden soll (und mit php verarbeitet). Da ich das Formular so sinnvoll/einfach wie möglich und nach heutigen Massstäben aufbauen möchte, hab ich mich erstmal umgeschaut was die vorherrschende Meinung ist wie man Formulare aufbauen soll.
Erschreckenderweise bin ich dabei auf sehr viele Beispiele gestossen, die beim Aufbau des Formulars blinde Tabellen verwenden. Sogar Selfhtml himself: http://de.selfhtml.org/html/formulare/eingabe.htm#felder (zweites Beispiel) oder http://de.selfhtml.org/html/formulare/formatieren.htm. Ich dachte die Verwendung von Tabellen sei mittlerweile verschmäht (ausser es soll wirklich eine Tabelle dargestellt werden). Bin ich etwa doch falsch informiert?! Selfhtml hat übrigens in vielen Beispielen tabellen Designs.
Ja, das hat damit zu tun, dass Selfhtml HTML und CSS getrennt vermittelt.
Die zeit, wo diese Beispiele entstanden, spielt sicher auch eine Rolle.
Weiter würde ich sagen, Tabellen sind nicht so verpönt wie man glaubt. Ich denke immer nach dass Tabellen eine Möglichkeit für Formulare darstellen. Anderseits darf man sich eine Lösung mit Definitionslisten überlegen.
Naja, andere packen jedes einzelne Eingabefeld und die dazugehörige Beschriftung in ein <div>. Ein Beispiel findet ihr unter: http://www.stichpunkt.de/css/formulare.html.
Das ist auch nicht besser, denn es führt zu einer Floatwüste, welche andere unangenehme Nebeneffekte haben kann.
Besonders negativ ist hier der Verzicht auf <label> Elemente.
Und wiederum andere verwenden eine Liste und geben die Eingabefelder als ein Listenpunkt aus. Beispiel hierfür findet ihr im vierten blauen Feld auf folgender Seite: http://tut.php-quake.net/guestbook.html#u4.
So, ich weiss nicht ob es ein richtig oder falsch gibt (wobei mir, das Design mit Tabelle falsch vorkommt), aber was ist am sinnvollsten? Was am einfachsten? Was am besten für die Lesbarkeit (wenn man z.B. auch die Ausgabe für Blinde miteinbezieht)?
Wenn es um die Übersicht im Code geht, sind tabellen immer schwierig.
Ich würde Definitionslisten vorziehen, wobei man hier auch mit float arbeitet.
Aber ich denke Formulare sind eh ein Fall, den man im Einzelfall entscheiden muss, Da sind ja noch die möglichen Gruppierungen: <fieldset> und <legend>
Vielleicht möchtest du uns mal ein konkretes Formular nach deinem Layout zeigen, worüber wir dann diskutieren können.
Ich habe jetzt mal nachgeschaut in meinen eigenen Code auf einer Seite, die ein etwas kompliziertes Formular in zwei Spalten enthält.
Die Zweispaltigkeit habe ich mit Divs und float erreicht.
Das Formular selbst hat 4 Gruppen, die ich durch fieldset/legend abgrenze.
Innerhalb dieser Gruppen habe ich <label> und ein Formularelement pro zeile getrennt durch ein schlichtes <br>
Das kann also verbessert werden.
PS: einen hässlichen Umstand gibt es bezüglich der Formatierung von Formularfeldern, welche im Standards Modus nicht alle gleich breit formatiert werden, wenn man sie nicht besonders formatiert. Das bringt es mit sich, dass man Formularfelder in ein letzlich als Blockelement ausgezeichnetes Feld stellt.
Hier wäre wohl <dl> besser als <ul>
mfg Beat