Formulare erstellen mit Foundation
Die Foundation-Entwickler haben ein einfaches, leistungsstarkes und vielseitiges Formular-Layoutsystem entwickelt. Eine Kombination aus diesen Formularstilen und dem Foundation-Grid-System bedeutet, dass du fast grenzenlose Möglichkeiten hast.
Das Erstellen eines Formulars in Foundation ist einfach, aber äußerst flexibel. Formulare werden mit einer Kombination aus Standardformularelementen sowie Rasterzeilen und -spalten oder -zellen erstellt.
Die Basics
Texteingabefelder
Diese Eingabe-Typen erzeugen ein Texteingabe-Feld: text
, date
, datetime
, datetime-local
, email
, month
, number
, password
, search
, tel
, time
, url
und week
.
<form>
<div class="grid-container">
<div class="grid-x grid-padding-x">
<div class="medium-6 cell">
<label>Input Label
<input type="text" placeholder=".medium-6.cell">
</label>
</div>
<div class="medium-6 cell">
<label>Input Label
<input type="text" placeholder=".medium-6.cell">
</label>
</div>
</div>
</div>
</form>
Eingabefelder für Zahlen
In den meisten Internet-Browsern haben <input type="number">
-Elemente in ihnen Aufwärts und Abwärts-Steuerelemente, die die Zahl innerhalb des Felds erhöhen oder verringern. Diese werden Spin-Buttons genannt.
<form>
<div class="grid-container">
<div class="grid-x grid-padding-x">
<div class="medium-6 cell">
<label>Wie viele Puppen?
<input type="number" value="100">
</label>
</div>
</div>
</div>
</form>
Hilfetext (Zugänglichkeit)
Platzieren Sie den Hilfetext unter einem Feld, um seinen Zweck zu verdeutlichen. Wenn Sie den Hilfetext verwenden, geben Sie dem Text eine eindeutige ID und fügen Sie der Eingabe das Attribut aria-describedby
hinzu. Dadurch wird der Eingabe der Hilfstext zugeordnet. Ein Bildschirmleser kann dann den Hilfstext lesen, wenn der Benutzer sich auf die Eingabe konzentriert.
<form>
<div class="grid-container">
<div class="grid-x grid-padding-x">
<div class="medium-6 cell">
<label>Passwort
<input type="password" aria-describedby="passwordHelpText">
</label>
<p class="help-text" id="passwordHelpText">Dein Passwort muss mindestens 10 Zeichen lang sein und eine Zahl enthalten.</p>
</div>
</div>
</div>
</form>
Positionierung des Labels
Manchmal möchtest du ein Formular mit Beschriftungen links vom Eingabefeld haben. Das ist kein Problem! Du kannst das Label in eine andere Zelle oder Spalte links neben das Eingabefeld einfügen. Verwende dann die Klasse .text-right
oder .float-right
(oder füge text-align
hinzu: wie du möchtest), um die Beschriftung neu auszurichten.
In einer Umgebung von rechts nach links verwendest du stattdessen .float-left
.
<form>
<div class="grid-x grid-padding-x">
<div class="small-3 cell">
<label for="right-label" class="text-right">Label</label>
</div>
<div class="small-9 cell">
<input type="text" id="right-label" placeholder="Rechtsbündige Texteingabe">
</div>
</div>
</form>
Füge die .middle
-Klasse hinzu, um das Label mit dem Eingabefeld vertikal mittig auszurichten.
<form>
<div class="grid-x grid-padding-x">
<div class="small-3 cell">
<label for="middle-label" class="text-right middle">Label</label>
</div>
<div class="small-9 cell">
<input type="text" id="middle-label" placeholder="Rechtsbündig und mittig ausgerichtete Texteingabe">
</div>
</div>
</form>
Inline-Labels und Buttons
Um zusätzlichen Text oder Steuerelemente an die linke oder rechte Seite eines Eingabefelds anzuhängen, betten Sie die Elemente in einen .input-group-Container ein und fügen Sie dann folgende Klassen den Elementen darin hinzu:
.input-group-field
im Textfeld..input-group-label
für das Textlabel..input-group-button
für die Schaltfläche. Platzieren Sie den Button in diesem Wrapper.
<div class="input-group">
<span class="input-group-label">$</span>
<input class="input-group-field" type="number">
<div class="input-group-button">
<input type="submit" class="button" value="Submit">
</div>
</div>
Buttons für Uploads
Verwende <input type="file">
, um eine Dateiupload-Schaltfläche zu erstellen. Aus Sicherheitsgründen lassen die meisten Browser eine Stil-Anpassung der Dateiupload-Schaltfläche nicht zu. Um das zu umgehen, können wir ein Label als Schaltfläche formatieren und auf den <input>
verweisen. Um die Eingabe ordnungsgemäß zu maskieren, wird die Klasse .show-for-sr
hinzugefügt.
<label for="exampleFileUpload" class="button">Upload File</label>
<input type="file" id="exampleFileUpload" class="show-for-sr">
Benutzerdefinierte Steuerelemente (Eingabehilfen)
Benutzerdefinierte Formularsteuerelemente wie Datumsauswahl, Bereichsschieberegler oder Schalter benötigen zusätzliche Aufmerksamkeit, die zugänglich gemacht werden muss. Unsere benutzerdefinierten Eingaben, wie der Bereichsschieberegler und der Schalter, erledigen das meiste für Sie.
Bei benutzerdefinierten Eingaben mit Beschriftungen oder Hilfetexten müssen die Attribute aria-labelledby
und aria-describedy
hinzugefügt werden, damit Screen Reader das Steuerelement richtig interpretieren können.
<label id="ageLabel">Age</label>
<div class="slider" aria-labelledby="ageLabel" aria-describedby="ageHelpText" data-slider data-initial-start="50" data-end="200">
<span class="slider-handle" data-slider-handle role="slider" tabindex="1"></span>
<span class="slider-fill" data-slider-fill></span>
<input type="hidden">
</div>
<p id="ageHelpText">How old are you?</p>
How old are you?