Ich bin kürzlich auf einige Beispiele gestoßen, die Dinge tun wie:
<dl>
<dt>Full Name:</dt>
<dd><input type="text" name="fullname"></dd>
<dt>Email Address:</dt>
<dd><input type="text" name="email"></dd>
</dl>
für HTML-Formulare. Warum ist das so? Was ist der Vorteil gegenüber der Verwendung von Tabellen?
<br />
. Es hängt alles davon ab, wie Sie den Code gestaltenjavascript -
...Antworten:
Ich denke, es liegt an Ihnen, die Semantik zu bestimmen, aber meiner Meinung nach:
Anstelle einer Definitionsliste sollten formularbezogene Eigenschaften verwendet werden.
Das "for" -Attribut im <label> -Tag sollte auf das "id" -Attribut eines <input> -Tags verweisen. Wenn Beschriftungen Feldern zugeordnet sind, wird durch Klicken auf die Beschriftung das zugehörige Feld scharfgestellt.
Sie können auch Tags wie <fieldset> verwenden, um Abschnitte eines Formulars zu gruppieren, und <legend>, um eine Feldmenge zu beschriften.
quelle
Ich habe die in diesem Artikel beschriebene Technik mehrmals erfolgreich angewendet .
Ich stimme sjstrutt zu, dass Sie formularbezogene Tags wie
label
undform
in Ihren Formularen verwenden sollten, aber dem in seinem Beispiel beschriebenen HTML-Code fehlt häufig Code, den Sie als "Hooks" für die Gestaltung Ihres Formulars mit CSS verwenden können.Infolgedessen markiere ich meine Formulare folgendermaßen:
Dieser Ansatz hinterlässt mir einen verständlichen Satz von Tags, der genügend Hooks enthält, um die Formulare auf viele verschiedene Arten zu gestalten.
quelle
<li>
, genau wie die anderen Eingänge.Dies ist eine Teilmenge des Problems Semantik vs. Formatierung. Eine Definitionsliste sagt, was sie sind, eine Liste verwandter Schlüssel- / Wertattribute, sagt aber nicht, wie sie angezeigt werden sollen. Eine Tabelle enthält mehr Informationen zum Layout und zur Anzeige der Daten als zu den darin enthaltenen Daten. Es schränkt ein, wie die Liste formatiert werden kann, indem sowohl das Format als auch das Format zu wenig angegeben werden.
In der Vergangenheit hat HTML die Semantik mit der Formatierung verwechselt. Schriftarten und Tabellen sind die schlechtesten Beispiele. Die Umstellung auf CSS für die Formatierung und das Entfernen vieler reiner Formatierungs-Tags aus XHTML stellt die Trennung von Bedeutung und Formatierung wieder her. Durch die Trennung der Formatierung in CSS können Sie denselben HTML-Code auf viele verschiedene Arten anzeigen, um ihn für einen breiten Browser, einen kleinen mobilen Browser, Drucken, einfachen Text usw. neu zu formatieren.
Besuchen Sie zur Erleuchtung den CSS Zen Garden .
quelle
dl
an mir ist, dass es auf der Reihenfolge der Tags beruht, um die Beziehung zwischen einem Begriff und seinen Definitionen zu vermitteln.In diesem Fall, Etiketten und Eingänge sind Ihre semantische Bedeutung und sie stehen auf eigene Faust.
Stellen Sie sich vor, Sie müssten die Webseite einer blinden Person vorlesen. Sie würden nicht sagen "Okay, ich habe hier eine Liste von Definitionen . Der erste Begriff ist 'Name'." Stattdessen würden Sie wahrscheinlich sagen: "Okay, wir haben hier ein Formular und es sieht so aus, als gäbe es eine Reihe von Feldern . Die erste Eingabe trägt die Bezeichnung " Name "."
Deshalb ist das Semantic Web wichtig. Dadurch kann sich der Inhalt der Seite sowohl für den Menschen als auch für die Technologie genau darstellen. Zum Beispiel gibt es viele Browser- Plugins , mit denen Benutzer Webformulare schnell mit ihren Standardinformationen (Name, Telefonnummer usw.) ausfüllen können. Diese funktionieren selten gut, wenn Eingaben keine Beschriftungen zugeordnet sind.
Hoffentlich hilft das.
quelle
Unter Verwendung
dl
dt
,dd
für Formulare ist nur ein weiterer Weg , um Ihre Formen zu strukturieren, zusammen mitul
li
,div
undtable
. Sie können immer einlabel
in setzendt
. Auf diese Weise behalten Sie das formularspezifische Elementlabel
bei.quelle
Definitionslisten haben semantische Bedeutung. Sie dienen zur Auflistung von Begriffen (<dt>) und den zugehörigen Definitionen (<dd>). Daher stellt in diesem Fall ein <dl> die semantische Bedeutung des Inhalts genauer dar als eine Tabelle.
quelle
input
undlabel
Tags sind bereits eindeutig, und das Einschließen in eine Definitionsliste ist bestenfalls eine Tautologie. Wie ist der Ausdruck "semantische Bedeutung" :)Definitionslisten werden fast nie verwendet, da sie semantisch gesehen selten im Internet angezeigt werden.
In Ihrem Fall wurde der richtige Code veröffentlicht:
Sie erstellen ein Formular mit Eingaben und Beschriftungen für diese Eingaben, Sie erstellen keine Liste von Wörtern und definieren sie.
Wenn Sie einen Hilfeabschnitt ausführen, sind Definitionslisten geeignet, z.
quelle
Ein Grund für die Verwendung von <dl> zum Markieren des Formulars ist, dass es viel einfacher ist, ausgefallene CSS-Layout-Tricks mit einem <dl> als mit einer <table> auszuführen. Der andere Teil ist, dass es die Semantik des Formulars (eine Liste von Beschriftungs- / Feldpaaren) besser widerspiegelt als eine Tabelle.
Ok, Tischhass ist auch ein Teil davon.
quelle
Manchmal präsentiert eine Definitionsliste die Informationen einfach so, wie es gewünscht wird, während eine Tabelle dies nicht tut. Persönlich würde ich wahrscheinlich keine Definitionsliste für ein Formular verwenden, es sei denn, sie passt zum Stil der Site.
quelle
Praktisch alle Formulare sind tabellarisch. Sehen Sie jemals ein Formular, das nicht tabellarisch ist? In den Richtlinien, die ich gelesen habe, wurde vorgeschlagen, das Tabellen-Tag für die tabellarische Darstellung zu verwenden. Genau dafür sind Formulare, Kalender und Tabellen gedacht. Und jetzt verwenden sie DD und DT anstelle von Tabellen? Wofür kommt das Web?! :) :)
quelle
<ul>
und<ol>
mit Tonnen von CSS gestaltet sind, nur weil Tabellen böse sind .Tabellenlistendaten sehen folgendermaßen aus:
Und Sie können DL-, DT- und DD-Tags-Listendaten wie folgt verwenden:
quelle
<th/>
Elemente für die Beschriftungen hätten verwenden können ...