HTML ändern · Anleitung

HTML Textfeld erstellen — input und textarea

Kurz gesagt: Für eine Zeile nimmst du <input type="text">, für mehrere Zeilen <textarea>. Zu jedem Feld gehört ein <label>, das über for und id mit ihm verknüpft ist — ohne das ist das Feld für Screenreader namenlos.

Ein Feld, richtig gebaut

<label for="vorname">Vorname</label>
<input type="text" id="vorname" name="vorname" required>

Mehrzeilig

<label for="nachricht">Deine Nachricht</label>
<textarea id="nachricht" name="nachricht" rows="5"></textarea>

Zwei Fallstricke auf einmal: <input> wird nicht geschlossen — es gibt kein </input>. <textarea> muss geschlossen werden, und zwar direkt: Alles zwischen den Tags erscheint als vorhandener Inhalt im Feld. Ein Zeilenumbruch dazwischen ergibt eine leere Zeile im Feld.

label ist keine Zierde

Die Verknüpfung läuft über zwei Angaben, die denselben Wert haben müssen: for am Label und id am Feld. Das bringt drei Dinge:

Der Platzhalter ist kein Ersatz dafür

<!-- schlecht: Bezeichnung nur im Platzhalter -->
<input type="text" placeholder="Vorname">

<!-- gut: Label sichtbar, Platzhalter als Beispiel -->
<label for="tel">Telefon</label>
<input type="tel" id="tel" name="tel" placeholder="030 12345678">

Ein Platzhalter verschwindet beim Tippen. Wer nach der Hälfte unterbrochen wird, sieht nicht mehr, was in das Feld gehörte. Dazu ist er meist hellgrau und damit kontrastschwach.

Die Regel: Das Label sagt, was gebraucht wird. Der Platzhalter zeigt ein Beispiel für das Format. Er ersetzt das Label nie.

Der Feldtyp entscheidet über die Handy-Tastatur

Das ist der am meisten unterschätzte Punkt bei Formularen. type ändert, welche Tastatur auf dem Handy erscheint:

TypFürHandy-Tastatur
textNamen, beliebiger Textnormal
emailE-Mail-Adressemit @ und Punkt
telTelefonnummerZifferntastatur
urlInternetadressemit Schrägstrich und .de
numberechte ZahlenZiffern, mit Pfeilen
dateDatumDatumsauswahl

Nimm type="email", wo eine E-Mail-Adresse hingehört. Der Browser prüft dann grob das Format, und auf dem Handy erscheint eine Tastatur mit @-Zeichen. Das kostet nichts und senkt die Abbruchquote.

type="number" nicht für Telefonnummern. Es akzeptiert nur echte Zahlen und wirft führende Nullen weg — aus „030…" wird „30…". Für Telefonnummern ist type="tel" richtig, denn eine Nummer ist keine Zahl, mit der man rechnet.

Pflichtfelder und Prüfung ohne JavaScript

<label for="mail">E-Mail</label>
<input type="email" id="mail" name="mail"
       required
       maxlength="254"
       autocomplete="email">
AngabeWas sie macht
requiredFeld muss gefüllt sein, sonst kein Absenden
maxlengthmaximale Zeichenzahl
minlengthMindestlänge
patterneigenes Muster, etwa für eine Postleitzahl
autocompleteerlaubt dem Browser das Ausfüllen
disabledFeld gesperrt, wird nicht mitgesendet
readonlynur lesbar, wird aber mitgesendet

autocomplete ist ein echter Gewinn. Mit autocomplete="email", "name" oder "tel" füllt der Browser das Feld mit einem Tipp aus den gespeicherten Daten. Auf dem Handy ist das der Unterschied zwischen einem Tipp und dreißig.

Prüfung im Browser ist Bequemlichkeit, keine Sicherheit. required und pattern lassen sich umgehen. Wer Daten entgegennimmt, muss sie auf dem Server erneut prüfen. Für ein Formular bei einem Dienstleister — Newsletter-Tool, Formular-Anbieter — übernimmt das der Anbieter.

Wohin gehen die Daten?

Ein Feld allein sammelt nichts. Es braucht ein <form> darum und eine Stelle, die die Daten annimmt:

<form action="https://anbieter.example/annehmen" method="post">
  <label for="mail">E-Mail</label>
  <input type="email" id="mail" name="mail" required>
  <button type="submit">Anmelden</button>
</form>

Und hier die ehrliche Einordnung: Eine reine HTML-Datei kann keine Daten entgegennehmen. Sie braucht immer einen Dienst, der das übernimmt — dein Newsletter-Tool, ein Formular-Anbieter, eine Buchungssoftware.

Der einfachere Weg für Solo-Selbstständige: Nimm den fertigen Einbettungs-Code deines Newsletter-Tools statt ein Formular selbst zu bauen. Dann kümmert sich der Anbieter um Annahme, Bestätigungsmail und Speicherung. Wie das Einbetten geht, steht auf iframe einbetten.

name ist entscheidend, nicht id. Gesendet wird nur, was ein name-Attribut hat. Die id dient der Verknüpfung mit dem Label. Fehlt name, ist das Feld beim Empfänger einfach nicht da — ein Fehler, der lange unbemerkt bleibt, weil das Formular scheinbar funktioniert.

Felder ansehnlich machen

input, textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #ddd;
  border-radius: 10px;
  font-size: 16px;        /* wichtig, siehe unten */
  font-family: inherit;   /* sonst nimmt der Browser eine andere Schrift */
}
input:focus, textarea:focus {
  outline: 2px solid #7c5cff;
  outline-offset: 1px;
}
textarea { resize: vertical; }

font-size: 16px ist kein Geschmack, sondern nötig. Bei kleinerer Schrift zoomt Safari auf dem iPhone beim Antippen automatisch in die Seite hinein — das Layout springt, und der Besucher muss zurückzoomen. Ab 16 Pixel passiert das nicht.

Und outline beim Fokus nicht entfernen. Wer mit der Tastatur navigiert, sieht ohne diese Markierung nicht, in welchem Feld er ist. Ersetzen ist in Ordnung, weglassen nicht.

Und ohne Code?

Hier gilt eine klare Grenze, die ich offen sage: Formulare zu bauen ist nicht PageFix' Aufgabe. Ein neues Feld, ein neues Formular, die Verbindung zum Newsletter-Tool — das baut deine KI in einem Prompt, oder du nimmst den Einbettungs-Code deines Anbieters.

Was PageFix ändern kann

Die Texte um das Formular herum: Überschrift, Erklärtext, Datenschutz-Hinweis, die Beschriftung des Absenden-Knopfes. Und die Reihenfolge der Abschnitte, in denen das Formular steht.

Was PageFix nicht kann

Platzhalter-Texte innerhalb der Felder sind derzeit nicht per Klick editierbar — das steht auf der Liste für eine kommende Version. Neue Felder anlegen ebenfalls nicht.

PageFix ist ein deutschsprachiger Web-Editor für KI-gebaute HTML-Seiten: Texte, Schriften, Farben, Bilder, Links, Videos und die Reihenfolge von Abschnitten. Einmalzahlung von 49 €, kein Abo.

Häufige Fragen

Wie erstelle ich ein Textfeld in HTML?
Für eine Zeile mit <input type="text">, für mehrere Zeilen mit <textarea>. Dazu gehört ein <label>, das über for und id mit dem Feld verknüpft ist. <input> wird nicht geschlossen, <textarea> muss geschlossen werden.
Was ist der Unterschied zwischen input und textarea?
<input type="text"> ist einzeilig und wird nicht geschlossen. <textarea> ist mehrzeilig, wird geschlossen, und alles zwischen den Tags erscheint als vorhandener Inhalt im Feld — ein Zeilenumbruch dazwischen ergibt deshalb eine leere Zeile.
Kann der Platzhalter das Label ersetzen?
Nein. Ein Platzhalter verschwindet beim Tippen — wer unterbrochen wird, sieht nicht mehr, was in das Feld gehörte. Das Label sagt, was gebraucht wird, der Platzhalter zeigt ein Beispiel für das Format. Ohne Label ist das Feld für Screenreader außerdem namenlos.
Warum kommen meine Formulardaten nicht an?
Meist fehlt das name-Attribut. Gesendet wird nur, was einen name hat — die id dient nur der Verknüpfung mit dem Label. Der Fehler bleibt lange unbemerkt, weil das Formular scheinbar funktioniert.
Warum zoomt mein iPhone beim Antippen eines Feldes?
Weil die Schriftgröße des Feldes unter 16 Pixeln liegt. Safari zoomt dann automatisch in die Seite hinein. Setze font-size: 16px an input und textarea, dann passiert das nicht.
Kann ich Formularfelder ohne Code ändern?
Teilweise. PageFix ändert die Texte um das Formular herum — Überschrift, Erklärtext, Beschriftung des Absenden-Knopfes — und die Reihenfolge der Abschnitte. Platzhalter-Texte innerhalb der Felder sind derzeit nicht per Klick editierbar, und neue Felder anlegen geht nicht. Formulare zu bauen ist nicht die Aufgabe eines Klick-Editors.
Jetzt starten

Erst ausprobieren? Öffne die Demo — der echte Editor, ohne Konto.

Zuletzt aktualisiert: 12. September 2026

← Zurück zur Startseite und PageFix ansehen