Label Platzierung

Thema:

Kurzer, aber guter Artikel zur Platzierung von Feldbezeichnungen in Formularen. Klassischerweise kann man ja das label über oder links neben das input schreiben und im letzteren Fall den Text auch noch links oder rechts ausrichten. Überraschende Lösung des Problem: es kommt darauf an. Immer dasselbe.

Je nach Aufgabe und Formular scheint es verschiedene passende Lösungen zu geben. Das label über das Formularfeld zu schreiben, hilft dem Benutzer am besten beim Ausfüllen des Formulars, benötigt aber viel vertikalen Raum, ist also bei langen Formularen eher anstrengend. Links ausgerichtete, links stehende label scheinen hier die Lösung zu sein, während die links stehenden, aber rechts ausgerichten eher für kurze, oft genutzte Formulare (bspw. Username/Passwort) passend sind.

screenshot

Auffällig gut gelöst finde ich allerdings in den Beispielen, die Platzierung der Hilfetexte (»first«, »MM/DD/YY«) an Formularteilen mit mehr als einem Feld, kleiner und grau, aber eben direkt am Input-Feld. Das sieht super aus, hat maximalen Hilfseffekt und braucht kein Javascript etc. um aufzupoppen. Allerdings kommt man hier ein wenig durcheiander, was label ist, denn ein Label kann ja immer nur für ein Formularfeld stehen1. Damit wäre Name hier also eher ein fieldset, vielmehr die legend dazu, dann würde aber bei Email bspw. das label fehlen oder eben genauso aussehen. Andererseits, wenn man das konsequent macht und immer eine Legend-Label-Kombination findet…

Hier ein kurz zusammengestricktes Beispiel, erst das HTML:

<form method="get" action="">
    <fieldset>
        <legend>Name:</legend>
        <p>
            <label>
                <input value="" type="text" /><br />
                <span>Vorname</span>
            </label>
        </p>
        <p>
            <label>
                <input value="" type="text" /><br />
                <span>Nachname</span>
            </label>
        </p>
    </fieldset>
    <fieldset>
        <legend>Netzleben:</legend>
        <p>
            <label>
                <input value="" type="text" /><br />
                <span>Email</span>
            </label>
        </p>
        <p>
            <label>
                <input value="http://" type="text" /><br />
                <span>Homepage</span>
            </label>
        </p>
    </fieldset>
</form>

Und dann das CSS (ich schätze, nicht IE-kompatibel):

* { /* So nur wenns schnell gehen soll */
     margin: 0;
     padding: 0;
}
body {
     font-family: "Lucida Grande", "Lucida Sans Unicode", sans-serif;
     font-size: 10px;
}
form {
    margin: 50px;
}
fieldset {
    border: none;
    margin-bottom: 10px;
    overflow: hidden;
    width: 400px;
}
legend {
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 5px;
}
form fieldset p {
    float: left;
    line-height: 180%;
    width: 190px;
}
form fieldset p input {
    font-size: 12px;
    padding: 2px;
    width: 170px;
}
form fieldset p span {
    color: #666;
}

1 Gewußt? Wenn man auf das Label klickt, bekommt das zugehörige Formfeld den Fokus. Und: das <label> kann Labeltext und Input-Feld auch umschließen, dann braucht man kein for-Attribut und spart sich die ID am Formularfeld.

Noch keine Kommentare.

Kommentare geschlossen.

Hinweis…

Diese Seite enthält Videos von Youtube. Diese sind standardmäßig deaktiviert. Falls Du unten auf „Ja“ klickst, werden Daten von Youtube auf Deinen Rechner geladen und so mindestens Deine IP-Adresse an Youtube weiter gegeben. Cookies werden nicht verwendet. Mehr Infos.

Möchtest du Youtube auf dieser Seite aktivieren?