Ä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.

    – Lloyd Dominic

    24. Mai 2017 um 5:28 Uhr

/* do not group these rules */
*::-webkit-input-placeholder {
    color: red;
}
*:-moz-placeholder {
    /* FF 4-18 */
    color: red;
    opacity: 1;
}
*::-moz-placeholder {
    /* FF 19+ */
    color: red;
    opacity: 1;
}
*:-ms-input-placeholder {
    /* IE 10+ */
    color: red;
}
*::-ms-input-placeholder {
    /* Microsoft Edge */
    color: red;
}
*::placeholder {
    /* modern browser */
    color: red;
}
<input placeholder="hello"/> <br />
<textarea placeholder="hello"></textarea>

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).

Benutzeravatar von EIIPII
EIIPII

Für Bootstrap Und Weniger Benutzer gibt es einen Mixin-Platzhalter:

// Placeholder text
// -------------------------
.placeholder(@color: @placeholderText) {
  &:-moz-placeholder {
    color: @color;
  }
  &:-ms-input-placeholder {
    color: @color;
  }
  &::-webkit-input-placeholder {
    color: @color;
  }
}

  • Zum Ändern von Bootstrap CSS

    – die Hälfte eines Glasers

    16. Dezember 2020 um 12:10 Uhr

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.

  • Zum Ändern von Bootstrap CSS

    – die Hälfte eines Glasers

    16. Dezember 2020 um 12:10 Uhr

Für Sass Benutzer:

// Create placeholder mixin
@mixin placeholder($color, $size:"") {
  &::-webkit-input-placeholder {
    color: $color;
    @if $size != "" {
      font-size: $size;
    }
  }
  &:-moz-placeholder {
    color: $color;
    @if $size != "" {
      font-size: $size;
    }
  }
  &::-moz-placeholder {
    color: $color;
    @if $size != "" {
      font-size: $size;
    }
  }
  &:-ms-input-placeholder {
    color: $color;
    @if $size != "" {
      font-size: $size;
    }
  }
}

// Use placeholder mixin (the size parameter is optional)
[placeholder] {
  @include placeholder(red, 10px);
}

1450110cookie-checkÄndern Sie die Platzhalterfarbe einer HTML-Eingabe mit CSS

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy