2008-10-31 3 views
5

In Ordnung, ich weiß, wie die fieldset/legend in HTML funktioniert. Angenommen, Sie mit einigen Feldern eine Form haben:Fieldsets und Legenden

<form> 
    <fieldset> 
     <legend>legend</legend> 
     <input name="input1" /> 
    </fieldset> 
</form> 

Was sollte ich das legend verwenden? Es wird als Titel angezeigt, aber ist keine Legende semantisch eine Erklärung des Inhalts? Meiner Ansicht nach, bevorzugt würden Sie so etwas tun:

<form> 
    <fieldset> 
     <legend>* = required</legend> 
     <label for="input1">input 1 *</label><input id="input1" name="input1" /> 
    </fieldset> 
</form> 

Aber das wirklich nicht klappt mit wie Fieldset gerendert werden. Ist das nur eine ambitionierte Benennung in HTML, oder ist es mein Missverständnis des englischen Wortes "Legende"?


Edit: Fest ;-) einige Fehler

+0

Das schließende Tag für die Legende sollte/legend sein (es ist/fieldset jetzt) ​​ – FOR

+0

Auch die Bezeichnung "für" bezieht sich auf eine ID - Sie sollten haben – Greg

Antwort

8

Ja, die Namensgebung ist nicht eindeutig. Es ist am besten, es als Überschrift für das Fieldset zu betrachten.

Siehe the HTML spec on FIELDSET and LEGEND elements wenn Sie nicht bereits haben:

Das LEGEND Element Autoren eine Beschriftung auf einen FIELDSET zuweisen können. Die Legende verbessert die Barrierefreiheit, wenn das FIELDSET nicht visuell dargestellt wird.

1

Ich denke, man

<form> 
    <fieldset> 
     <legend>legend</legend> 
     <input name="input1" /> 
    </fieldset> 
</form> 

schreiben bedeutete aber du hast Recht teilweise. Das Wort Legende hat mehrere Bedeutungen einschließlich

  • Eine erläuternde Bildunterschrift begleitenden eine Illustration.
  • Eine erläuternde Tabelle oder Liste der Symbole erscheint auf einer Karte oder einem Diagramm.

So kann es eigentlich beides bedeuten.

1

Wenn Sie sagen, dass die Legende "Es wird als Titel angezeigt" .. klar, es hängt von der CSS beteiligt. Wenn Sie CSS nicht selbst angeben, verwendet jeder Browser seine eigenen integrierten Stile, die möglicherweise die beste überhaupt sind.

Ich stimme zu, dass eine Legende anders als ein Titel ist ... Ich glaube nicht, dass die Legende der richtige Ort für etwas wie "* = erforderlich" ist (das scheint nur eine warnende Information für den Benutzer , nicht wirklich eine Erklärung des fieldset selbst).

Eine Legende kann schließlich als Beschriftung oder kurze Beschreibung einer Illustration definiert werden (normalerweise; etwas anderes als ein Bild in diesem Fall).

So weit wie es angezeigt wird, gibt CSS Ihnen wieder die Möglichkeit, es (oder nicht) anzuzeigen, wie Sie für richtig halten.

1

Denken Sie an die Legende als Titel einer Groupbox. Sie verwenden es, um ähnliche Formularelemente zu gruppieren.Sie könnten alle Eingabefelder für eine Lieferadresse in einem Feld mit der Legende "Lieferadresse" und die Menge aller Eingabefelder für eine Rechnungsadresse in einem anderen Feld mit der Legende "Rechnungsadresse" haben.

Hier ist ein Beispiel:

Fieldsets in Skiviez Checkout http://piasecki.name/fieldset-legend-example.jpg

Sie können über CSS-Stil (weil Internet Explorer zeigt den Hintergrund des Fieldset falsch Our IE stylesheet hat einige gute Beispiele schwierig sein, schauen Sie in der „#content Form. „Abschnitt.

1

<legend> das Element ist die semantische Äquivalent einer‚fieldset Überschrift‘oder‚Titel‘für die Gruppe der Form Kontrollen enthalten ist, durch die <fieldset>.

Die FIELDSET Element ermöglicht Autoren Gruppe thematisch verwandte Kontrollen

die fieldset s sollte Gruppe zusammen mehrere Formularsteuer bedeutet - nicht nur ein einziges Paar von <input> und <legend>.

Tatsächlich <div> s, <p> s oder <li> s sind recht geeignete Behälter für <input> + <legend> Paaren.