Ändern Sie die Platzhalterfarbe einer HTML-Eingabe mit CSS
Lesezeit: 2 Minuten
Chrome v4 unterstützt die Platzhalterattribut An input[type=text] Elemente (andere wahrscheinlich auch).
Das folgende CSS ändert jedoch nichts am Wert des Platzhalters:
input[placeholder], [placeholder], *[placeholder] {
color: red !important;
}
<input type="text" placeholder="Value">
Value wird noch bleiben grey anstatt red.
Gibt es eine Möglichkeit, die Farbe des Platzhaltertextes zu ändern?
Kurzes Heads-up (keine Lösung, nur ein FYI): Wenn ich mich richtig erinnere, geben Sie ein[placeholder] stimmt nur mit -Tags überein, die ein Platzhalterattribut haben, es stimmt nicht mit dem Platzhalterattribut selbst überein.
– rosagotisch
9. April 2010 um 19:58 Uhr
@ Mathias Bynens Die Pseudoklasse :placeholder-showd stimmt mit einem Eingabeelement überein, das einen solchen Platzhaltertext anzeigt. Es passt also <input> Etikett, wie input Selektor, zeigt aber gerade Platzhaltertext an. Es stimmt auch nicht mit dem Platzhalterattribut selbst überein.
– HEX
18. Januar 2016 um 12:55 Uhr
@HEX Es ist nicht so input Selektor, weil das alles auswählt input Elemente. :placeholder-shown wählt nur aus input Elemente, die derzeit den Platzhalter anzeigen, sodass Sie nur diese Elemente gestalten und den Platzhaltertext effektiv gestalten können. Was versuchst du zu sagen?
– Mathias Bynens
19. Januar 2016 um 14:19 Uhr
@HEX (Natürlich auch ausgewählt textarea Elemente, die Platzhaltertext anzeigen.)
– Mathias Bynens
21. Januar 2016 um 10:18 Uhr
Ich sehe hier kein Problem … Die Textfarbe des Platzhalters ist jetzt rot. Vielleicht unterstützen es jetzt andere moderne Browser.
Dies wird alles stylen input Und textarea Platzhalter.
Wichtiger Hinweis: Gruppieren Sie diese Regeln nicht. Erstellen Sie stattdessen eine separate Regel für jeden Selektor (ein ungültiger Selektor in einer Gruppe macht die gesamte Gruppe ungültig).
EIIPII
Für Bootstrap Und Weniger Benutzer gibt es einen Mixin-Platzhalter:
Zusätzlich zu Toschos Antwort habe ich einige erwähnenswerte Webkit-Inkonsistenzen zwischen Chrome 9-10 und Safari 5 mit den unterstützten CSS-Eigenschaften festgestellt.
Speziell Chrome 9 und 10 werden nicht unterstützt background-color, border, text-decoration Und text-transform beim Gestalten des Platzhalters.
Der vollständige Cross-Browser-Vergleich ist Hier.
Kurzes Heads-up (keine Lösung, nur ein FYI): Wenn ich mich richtig erinnere, geben Sie ein[placeholder] stimmt nur mit -Tags überein, die ein Platzhalterattribut haben, es stimmt nicht mit dem Platzhalterattribut selbst überein.
– rosagotisch
9. April 2010 um 19:58 Uhr
@ Mathias Bynens Die Pseudoklasse :placeholder-showd stimmt mit einem Eingabeelement überein, das einen solchen Platzhaltertext anzeigt. Es passt also
<input>
Etikett, wieinput
Selektor, zeigt aber gerade Platzhaltertext an. Es stimmt auch nicht mit dem Platzhalterattribut selbst überein.– HEX
18. Januar 2016 um 12:55 Uhr
@HEX Es ist nicht so
input
Selektor, weil das alles auswähltinput
Elemente.:placeholder-shown
wählt nur ausinput
Elemente, die derzeit den Platzhalter anzeigen, sodass Sie nur diese Elemente gestalten und den Platzhaltertext effektiv gestalten können. Was versuchst du zu sagen?– Mathias Bynens
19. Januar 2016 um 14:19 Uhr
@HEX (Natürlich auch ausgewählt
textarea
Elemente, die Platzhaltertext anzeigen.)– Mathias Bynens
21. Januar 2016 um 10:18 Uhr
Ich sehe hier kein Problem … Die Textfarbe des Platzhalters ist jetzt rot. Vielleicht unterstützen es jetzt andere moderne Browser.
– Lloyd Dominic
24. Mai 2017 um 5:28 Uhr