PFAD: ./module/css/css3/

DATEI: string(25) "00Inhaltsverzeichnis3.php"
DATEI: string(19) "17Pseudoklassen.php"
DATEI: string(21) "18Strukturelle PK.php"
DATEI: string(16) "19Weitere PK.php"
DATEI: string(20) "20Pseudoelemente.php"
DATEI: string(31) "21first-letterUndfirst-line.php"
DATEI: string(17) "22placeholder.php"
DATEI: string(14) "23backdrop.php"
DATEI: string(13) "24Effekte.php"

css mit Adi Prinz

::placeholder

Mit dem Pseudoelement ::placeholder wird der Platzhaltertext eines Eingabefeldes oder Textbereichs gestaltet. Der Platzhalter zeigt einen kurzen Hinweis an, solange noch kein Wert eingegeben wurde.

Platzhaltertext gestalten

Der Platzhaltertext wird im HTML mit dem Attribut placeholder festgelegt.

<label for="placeholder-name">Name</label>

<input
  type="text"
  id="placeholder-name"
  placeholder="Vorname und Nachname"
>
    

Mit ::placeholder kann anschließend das Aussehen dieses Hinweistextes verändert werden:

.placeholder-example input::placeholder {
  color: #6f42c1;
  font-style: italic;
  opacity: 1;
}
    

Die Eigenschaft opacity: 1 sorgt dafür, dass der Browser den Platzhaltertext nicht automatisch blasser darstellt.

::placeholder bei Textbereichen

Das Pseudoelement kann nicht nur bei <input>-Elementen, sondern auch bei einem <textarea> verwendet werden.

.placeholder-example textarea::placeholder {
  color: #6c757d;
  font-style: italic;
}
    

Gestaltung abhängig vom Zustand

::placeholder kann mit Pseudoklassen wie :focus kombiniert werden. Dadurch lässt sich der Platzhaltertext verändern, sobald das Eingabefeld den Fokus erhält.

.placeholder-focus-example input::placeholder {
  color: #6c757d;
  transition: color 0.2s ease;
}

.placeholder-focus-example input:focus::placeholder {
  color: #adb5bd;
}
    

Der Platzhalter bleibt beim Fokussieren sichtbar, wird aber etwas heller. Sobald der Benutzer Text eingibt, verschwindet er automatisch.

::placeholder und :placeholder-shown

::placeholder und :placeholder-shown dürfen nicht verwechselt werden:

Selektor Art Aufgabe
::placeholder Pseudoelement Gestaltet den angezeigten Platzhaltertext.
:placeholder-shown Pseudoklasse Wählt das Eingabefeld aus, während dessen Platzhalter angezeigt wird.
/* Gestaltet den Platzhaltertext */
.placeholder-shown-example input::placeholder {
  color: #6f42c1;
}

/* Gestaltet das gesamte noch leere Eingabefeld */
.placeholder-shown-example input:placeholder-shown {
  border-color: #6f42c1;
  background-color: #f5f0ff;
}
    

Geeignete CSS-Eigenschaften

Für ::placeholder werden hauptsächlich Eigenschaften zur Textgestaltung verwendet.

Bereich Beispiele
Textfarbe color
Schrift font-family, font-size, font-weight, font-style
Textgestaltung text-decoration, text-transform, text-shadow
Abstände letter-spacing, word-spacing
Deckkraft opacity

Hinweis zur Barrierefreiheit

Ein Platzhalter ist kein Ersatz für eine sichtbare Beschriftung. Er verschwindet bei der Eingabe und ist häufig schwächer dargestellt als normaler Text.

Verwende für Formularfelder immer ein <label>. Das Attribut placeholder sollte nur eine zusätzliche Eingabehilfe enthalten.
<label for="email">E-Mail-Adresse</label>
<input
  type="email"
  id="email"
  placeholder="name@beispiel.at"
>
    

::file-selector-button

Mit dem Pseudoelement ::file-selector-button lässt sich die Schaltfläche eines Datei-Eingabefeldes gestalten. Das eigentliche <input type="file"> bleibt dabei erhalten.

Schaltfläche eines Datei-Eingabefeldes gestalten

Ein Datei-Eingabefeld wird mit type="file" erstellt. Der Browser zeigt darin eine Schaltfläche zum Auswählen einer Datei an.

<label for="file-basic">Datei auswählen</label>
<input type="file" id="file-basic">
    

Über ::file-selector-button wird ausschließlich die integrierte Schaltfläche angesprochen:

.file-selector-example input::file-selector-button {
  margin-right: 1rem;
  padding: 0.65rem 1rem;
  border: 0;
  border-radius: 0.375rem;
  background-color: #6f42c1;
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
    

Hover- und Fokuszustand

Das Pseudoelement kann mit Pseudoklassen des Datei-Eingabefeldes kombiniert werden. Dadurch reagiert die Schaltfläche auf Maus und Tastatur.

.file-selector-state-example input::file-selector-button {
  background-color: #6f42c1;
  color: #fff;
  transition:
    background-color 0.2s ease,
    transform 0.2s ease;
}

.file-selector-state-example input:hover::file-selector-button {
  background-color: #59359a;
}

.file-selector-state-example input:active::file-selector-button {
  transform: translateY(1px);
}

.file-selector-state-example input:focus-visible {
  outline: 0.2rem solid rgba(111, 66, 193, 0.35);
  outline-offset: 0.2rem;
}
    
Der Tastaturfokus liegt auf dem gesamten Datei-Eingabefeld. Deshalb wird der sichtbare Fokusrahmen auf dem <input> dargestellt.

Dateitypen mit accept einschränken

Das Attribut accept gibt an, welche Dateitypen im Dateiauswahldialog bevorzugt angeboten werden sollen.

<input
  type="file"
  id="file-document"
  accept=".pdf,.doc,.docx"
>
    
accept-Wert Bevorzugte Dateien
image/* Bilddateien
audio/* Audiodateien
video/* Videodateien
.pdf PDF-Dateien
.xlsx,.xls Excel-Dateien
.doc,.docx Word-Dateien
accept ist nur eine Hilfe bei der Dateiauswahl. Beim Hochladen müssen Dateityp, Dateigröße und Dateiinhalt zusätzlich auf dem Server geprüft werden.

Mehrere Dateien auswählen

Mit dem booleschen Attribut multiple kann der Benutzer mehrere Dateien in einem Durchgang auswählen.

<input
  type="file"
  id="file-multiple"
  accept="image/*"
  multiple
>
    

Die genaue Beschriftung des Datei-Eingabefeldes wird vom Browser und vom Betriebssystem bestimmt.

Geeignete CSS-Eigenschaften

Die Schaltfläche kann weitgehend wie eine gewöhnliche Schaltfläche gestaltet werden.

Bereich Beispiele
Farben color, background-color
Schrift font-family, font-size, font-weight
Abstände margin, padding
Rahmen border, border-radius
Interaktion cursor, transition

Hinweis zur Barrierefreiheit

Das Datei-Eingabefeld sollte eine sichtbare und eindeutig zugeordnete Beschriftung besitzen. Hinweise zu erlaubten Dateitypen und zur maximalen Dateigröße gehören in normalen HTML-Text.

Erlaubt sind PDF-Dateien bis maximal 5 MB.

<label for="file-accessible">Lebenslauf hochladen</label>

<p id="file-help">
  Erlaubt sind PDF-Dateien bis maximal 5 MB.
</p>

<input
  type="file"
  id="file-accessible"
  accept=".pdf"
  aria-describedby="file-help"
>