Der HTML-Standard bietet verschiedenste Eingabefelder. Aufgrund dieser Vielfalt können Elemente nur sinnvoll gestaltet werden, wenn sie individuell behandelt werden. Daher werden im folgenden Abschnitt die Eingabefelder der Komponenten im Detail betrachtet.
Die einfachste Form des Eingabefelds ist das <input>-Feld. HTML5 sieht hierfür verschiedenste Typen vor. Im einfachsten Fall handelt es sich dabei um den Typ <input type="text">. Durch die CSS-Klasse .form-input kann das gewünschte Aussehen und Verhalten angewendet werden.
Da Eingabefelder immer in Kombination mit einer Beschriftung erscheinen sollten, werden sie mit einem <div>-Tag mit der CSS-Klasse .form-input-set
ummantelt. Es schafft die Anordnung von Eingabefeld und Beschriftung:
<div class="form-input-set">
<label for="text1">Standard Eingabefeld</label>
<input type="text" class="form-input" name="text1" id="text1" placeholder="...">
</div>placehoder="Placeholder" sorgt für das Erscheinen eines Platzhaltertextes, wenn das Element leer ist. So kann der Benutzer gezeigt werden, was dort einzutragen ist.
Hinweis: Das Placeholder-Attribut ist im Internet-Explorer kleiner
Version 9 nicht verfügbar.
Für lange Texte ist in HTML der <textarea>-Tag vorgesehen.
Da die Eingabe dem einfachen Eingabefeld sehr ähnelt, kann ebenfalls die CSS-Klasse .form-input angewendet werden:
<div class="form-input-set">
<label for="text2">Lange Texteingabe</label>
<textarea class="form-input" name="text2" id="text2">Lorem ipsum...</textarea>
</div>Um dem Benutzer ein angemessenes Eingabe-Feedback zu bieten, werden verschiedene Dekorationen für Formularfelder angeboten. Die CSS-Klassen .decoration-positive,
.decoration-warning und .decoration-negative werden dabei auf das umgebene <div>-Tag angewendet um auch das <label> beeinflussen zu können:
<!-- Erfolgreich Eingabefeld -->
<div class="form-input-set decoration-positive">...</div>
<!-- Warnung Eingabefeld -->
<div class="form-input-set decoration-warning">...</div>
<!-- Erfolglos Eingabefeld -->
<div class="form-input-set decoration-negative">...</div>
<!-- Inaktiv Eingabefeld -->
<input type="text" class="form-input" name="text6" id="text6" disabled="disabled">Um Eingabefelder logisch zusammenfassen ist das <fieldset>-Tag vorgesehen.
Der <legend>-Tag sorgt dabei für die nötige Beschriftung der Gruppe:
<fieldset class="form-fieldset">
<legend>Benutzerdaten</legend>
...
</fieldset>fieldset hat im Bezug auf die Größenberechnung je nach Browser unterschiedliche Verhalten.
Ziel ist es meist, dass das Formular unabhängig von der umliegenden Seite in jedem Fall komplett und nicht
bschnitten angezeigt wird. Das hat aber auch zur Folge, dass die CSS-Klasse .text-ellipsed innerhalb
des fieldset nicht greift.
Für Checkboxen ist in HTML das Tag <input type="checkbox"> vorgesehen. Da es für Checkboxen bisher keine Möglichkeit gibt, ihnen mit einfachen CSS-Mitteln ein angemessenes Aussehen zu verleihen kommt Javascript zum Einsatz. Zunächst sollte über die Klasse .form-checkbox der Checkbox das Grundgerüst verliehen werden. Ein jQuery-Plugin sorgt nun für die nötige Modifikation:
$('.form-checkbox').checkbox()<fieldset class="form-fieldset">
<legend>Gruppen Beschriftung</legend>
<div class="form-checkbox-set">
<label>
<input type="checkbox" name="cb0" value="0" class="form-checkbox">foo
</label>
</div>
<div class="form-checkbox-set">
<label>
<input type="checkbox" name="cb1" value="1" class="form-checkbox" selected>bar
</label>
</div>
<div class="form-checkbox-set">
<label>
<input type="checkbox" name="cb2" value="2" class="form-checkbox" checked>Inaktiv
</label>
</div>
</fieldset>Da Radiobuttons meist in Gruppen auftreten sollten diese nur innerhalb eines <fieldset> vorkommen um so deren Zusammengehörigkeit zu visualisieren. Der <legend>-Tag beinhaltet dabei die Beschreibung der Gruppe.
Ein einzelener Radio-Button wird mit dem <input type="radio">-Tag erzeugt. Die CSS-Klasse .form-radio verleiht ihm das Grundgerüst und die grundelegenden Eigenschaften die alle Browser gemeinsam abbilden können.
Für eine optimale Darstellung gibt es auch für Radiobuttons ein jQuery-Plugin:
$('.form-radio').radio()<fieldset class="form-fieldset">
<legend>Gruppen Beschriftung</legend>
<div class="form-radio-set">
<label>
<input type="radio" name="rb" value="rb1" class="form-radio">foo
</label>
</div>
<div class="form-radio-set">
<label>
<input type="radio" name="rb" value="rb2" class="form-radio" checked>bar
</label>
</div>
<div class="form-radio-set">
<label>
<input type="radio" name="rb" value="rb3" class="form-radio" disabled>Inaktiv
</label>
</div>
</fieldset><!-- Selectbox -->
<div class="form-input-set">
<label for="selectbox" title="Primäroptionen Auswahlliste">Selectbox</label>
<select name="select" id="selectbox" class="form-select">
<option value="opt1">Option A</option>
<option value="opt2" selected>Option B</option>
<option value="opt3">Option C</option>
<option value="opt4" disabled>Option D (inaktiv)</option>
</select>
</div>
<!-- Selectbox (inaktiv) -->
<div class="form-input-set">
<label for="selectbox2" title="Sekundäroptionen Auswahlliste">Selectbox ( inaktiv )</label>
<select name="select2" id="selectbox2" class="form-select" disabled>
<option value="opt1">Option eins</option>
<option value="opt2">Option zwei</option>
<option value="opt3">Option drei</option>
<option value="opt4" disabled>Option vier (inaktiv)</option>
</select>
</div>Nähere Informationen zu Accessibility von Eingabe-Elementen im Artikel: SEO und Accessibility