Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

::placeholder CSS pseudo-element

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.

Das ::placeholder-CSS-Pseudoelement repräsentiert den Platzhaltertext in einem <input>- oder <textarea>-Element.

Probieren Sie es aus

input {
  margin-top: 0.5rem;
}

input::placeholder {
  font-weight: bold;
  opacity: 0.5;
  color: red;
}
<label for="first-name">Your phone number:</label><br />

<input
  id="first-name"
  type="tel"
  name="phone"
  minlength="9"
  maxlength="9"
  placeholder="It must be 9 digits" />

In einer Regel, deren Selektor ::placeholder verwendet, können nur die CSS-Eigenschaften verwendet werden, die für das Pseudoelement ::first-line gelten.

Hinweis: In den meisten Browsern ist Platzhaltertext standardmäßig durchscheinend oder hellgrau.

Syntax

css
::placeholder {
  /* ... */
}

Barrierefreiheit

Farbkontrast

Kontrastverhältnis

Platzhaltertext wird üblicherweise in einer helleren Farbe dargestellt, um zu verdeutlichen, dass er lediglich einen Hinweis auf eine gültige Eingabe gibt und selbst keine Eingabe ist.

Das Kontrastverhältnis zwischen dem Platzhaltertext und dem Hintergrund des Eingabefelds muss hoch genug sein, damit Menschen mit eingeschränktem Sehvermögen den Text lesen können. Gleichzeitig muss sich die Farbe des Platzhaltertexts ausreichend von der Farbe eingegebenen Texts unterscheiden, damit Nutzende den Platzhalter nicht mit eingegebenen Daten verwechseln.

Das Farbkontrastverhältnis wird durch einen Vergleich der Helligkeitswerte des Platzhaltertexts und des Eingabefeldhintergrunds bestimmt. Um die aktuellen Richtlinien für barrierefreie Webinhalte (WCAG) zu erfüllen, ist für Text ein Verhältnis von 4,5:1 und für größeren Text, beispielsweise Überschriften, ein Verhältnis von 3:1 erforderlich. Als größerer Text gilt Text ab 18,66 px in Fettschrift oder ab 24 px in normaler Schrift.

Benutzerfreundlichkeit

Platzhaltertext mit ausreichendem Farbkontrast kann mit einer bereits erfolgten Eingabe verwechselt werden. Außerdem verschwindet der Platzhaltertext, sobald jemand Inhalt in ein <input>-Element eingibt. Beides kann das erfolgreiche Ausfüllen eines Formulars erschweren, insbesondere für Menschen mit kognitiven Einschränkungen.

Eine Alternative besteht darin, den Hinweis außerhalb des Eingabefelds in unmittelbarer visueller Nähe zu platzieren und das <input> mithilfe von aria-describedby programmatisch mit dem Hinweis zu verknüpfen.

Bei dieser Umsetzung bleibt der Hinweis auch dann verfügbar, wenn bereits etwas in das Eingabefeld eingegeben wurde. Zugleich wirkt das Eingabefeld beim Laden der Seite nicht so, als enthielte es bereits eine Eingabe. Die meisten Screenreader lesen mithilfe von aria-describedby den Hinweis vor, nachdem sie die Beschriftung des Eingabefelds angesagt haben. Nutzende des Screenreaders können den Hinweis stummschalten, wenn sie die zusätzliche Information nicht benötigen.

html
<label for="user-email">Your email address</label>
<span id="user-email-hint" class="input-hint">Example: jane@sample.com</span>
<input
  id="user-email"
  aria-describedby="user-email-hint"
  name="email"
  type="email" />

Windows-Modus für hohen Kontrast

Im Windows-Modus für hohen Kontrast wird Platzhaltertext genauso dargestellt wie von Nutzenden eingegebener Text. Dadurch kann es für manche Menschen schwierig sein, eingegebenen Text von Platzhaltertext zu unterscheiden.

Beschriftungen

Platzhalter ersetzen kein <label>-Element. Ohne eine Beschriftung, die über die Attribute for und id programmatisch mit einem Eingabefeld verknüpft ist, können assistive Technologien wie Screenreader <input>-Elemente nicht richtig erfassen.

Beispiele

Darstellung des Platzhaltertexts ändern

Dieses Beispiel zeigt einige Anpassungen, die Sie am Stil des Platzhaltertexts vornehmen können.

HTML

html
<input placeholder="Type here" />

CSS

css
input::placeholder {
  color: red;
  font-size: 1.2em;
  font-style: italic;
  opacity: 0.5;
}

Ergebnis

Deckender Text

Einige Browser stellen Platzhaltertext mit verringerter Deckkraft dar. Wenn der Text vollständig deckend sein soll, legen Sie den Wert der Eigenschaft color ausdrücklich fest. Mit dem Wert currentColor erhält der Platzhaltertext dieselbe Farbe wie das zugehörige Eingabeelement.

HTML

html
<input placeholder="Color set by browser" />
<input placeholder="Same color as input" class="explicit-color" />
<input placeholder="Semi-opaque text color" class="opacity-change" />

CSS

css
input {
  font-weight: bold;
  color: green;
}

.explicit-color::placeholder {
  /* use the same color as input element to avoid the browser set default color */
  color: currentColor;
}

.opacity-change::placeholder {
  /* less opaque text */
  color: color-mix(in srgb, currentColor 70%, transparent);
}

Ergebnis

Hinweis: Browser verwenden unterschiedliche Standardfarben für Platzhaltertext. Firefox verwendet beispielsweise die Farbe des Eingabeelements mit 54 % Deckkraft, während Chrome die Farbe darkgray verwendet. Wenn Platzhaltertext in allen Browsern dieselbe Farbe haben soll, legen Sie color ausdrücklich fest.

Spezifikationen

Spezifikation
CSS Pseudo-Elements Module Level 4
# placeholder-pseudo

Browser-Kompatibilität

Siehe auch