Cambia il colore del segnaposto di un input HTML5 con CSS


3975

Chrome supporta l' attributo segnaposto sugli input[type=text]elementi (probabilmente lo fanno anche altri).

Ma quanto segue CSSnon fa nulla per il valore del segnaposto:

input[placeholder], [placeholder], *[placeholder] {
    color: red !important;
}
<input type="text" placeholder="Value">

Valuerimarrà comunque greyinvece di red.

C'è un modo per cambiare il colore del testo segnaposto?


375
Heads-up rapido (non una soluzione, solo una FYI): se ricordo bene, l'input [segnaposto] corrisponde solo ai tag <input> che hanno un attributo segnaposto, non corrisponde all'attributo segnaposto stesso.
pinkgothic

12
Sì, mi è venuto in mente che potrebbe essere come cercare di definire l'attributo "titolo" di un elemento. Quindi +1 per pensare allo stesso modo!
David Murdoch,

5
@MathiasBynens La pseudo-classe: segnaposto visualizzata corrisponde a un elemento di input che mostra tale testo segnaposto. Quindi abbina <input>tag, come inputselettore, ma mostra il testo segnaposto proprio ora. Inoltre non corrisponde all'attributo segnaposto stesso.
HEX,

3
@HEX Non è come il inputselettore perché seleziona tutti gli inputelementi. :placeholder-shownseleziona solo gli inputelementi che mostrano attualmente il segnaposto, consentendo di modellare solo quegli elementi e di applicare efficacemente il testo del segnaposto. Cosa stai cercando di dire?
Mathias Bynens,

1
@HEX (Naturalmente, ha anche selezionato textareaelementi che mostrano il testo segnaposto.)
Mathias Bynens,

Risposte:


4809

Implementazione

Esistono tre diverse implementazioni: pseudo-elementi, pseudo-classi e niente.

  • WebKit, Blink (Safari, Google Chrome, Opera 15+) e Microsoft bordo si utilizza un pseudo-elemento: ::-webkit-input-placeholder. [ Rif ]
  • Mozilla Firefox da 4 a 18 utilizza una pseudo-classe: :-moz-placeholder( due punti). [ Rif ]
  • Mozilla Firefox 19+ utilizza uno pseudo-elemento:, ::-moz-placeholderma il vecchio selettore funzionerà ancora per un po '. [ Rif ]
  • Internet Explorer 10 e 11 si utilizza un pseudo-classe: :-ms-input-placeholder. [ Rif ]
  • Aprile 2017: i browser più moderni supportano il semplice pseudo-elemento ::placeholder [ Ref ]

Internet Explorer 9 e versioni precedenti non supportano affatto l' placeholderattributo, mentre Opera 12 e versioni precedenti non supportano alcun selettore CSS per segnaposto.

La discussione sulla migliore implementazione è ancora in corso. Nota che gli pseudo-elementi si comportano come elementi reali in Shadow DOM . A paddingsu an inputnon otterrà lo stesso colore di sfondo dello pseudo-elemento.

Selettori CSS

I programmi utente devono ignorare una regola con un selettore sconosciuto. Vedi Selettori Livello 3 :

un gruppo di selettori che contiene un selettore non valido non è valido.

Quindi abbiamo bisogno di regole separate per ogni browser. Altrimenti l'intero gruppo verrebbe ignorato da tutti i browser.

::-webkit-input-placeholder { /* WebKit, Blink, Edge */
    color:    #909;
}
:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
   color:    #909;
   opacity:  1;
}
::-moz-placeholder { /* Mozilla Firefox 19+ */
   color:    #909;
   opacity:  1;
}
:-ms-input-placeholder { /* Internet Explorer 10-11 */
   color:    #909;
}
::-ms-input-placeholder { /* Microsoft Edge */
   color:    #909;
}

::placeholder { /* Most modern browsers support this now. */
   color:    #909;
}
<input placeholder="Stack Snippets are awesome!">

Note sull'utilizzo

  • Fai attenzione a evitare contrasti negativi. Il segnaposto di Firefox sembra essere predefinito con un'opacità ridotta, quindi deve essere utilizzato opacity: 1qui.
  • Nota che il testo segnaposto viene semplicemente tagliato se non si adatta: ridimensiona gli elementi di input eme testali con impostazioni minime per il carattere. Non dimenticare le traduzioni: alcune lingue hanno bisogno di più spazio per la stessa parola.
  • Anche i browser con supporto HTML placeholderma senza supporto CSS (come Opera) dovrebbero essere testati.
  • Alcuni browser utilizzano CSS predefiniti aggiuntivi per alcuni inputtipi ( email, search). Questi potrebbero influire sul rendering in modi imprevisti. Usa le proprietà -webkit-appearance e -moz-appearanceper cambiarle. Esempio:
    [type="search"] {
        -moz-appearance:    textfield;
        -webkit-appearance: textfield;
        appearance: textfield;
    }

27
Si noti inoltre che sebbene Webkit ritenga che questo abbia una specificità piuttosto forte, Mozilla no. Probabilmente dovrai far scoppiare alcuni! Importatori per far apparire le cose.
dmnc,

18
@toscho: grazie per l'ottima risposta. Ho solo bisogno di una piccola dimostrazione "live", quindi il tuo esempio può essere raggiunto anche qui: jsfiddle.net/Sk8erPeter/KyVXK . Grazie ancora.
Sk8erPeter

90
Il segnaposto di Firefox sembra essere inadempiente con un'opacità ridotta. Per chiunque altro che si stia rinfrescando e chiedendosi perché diamine non sembra funzionare ("perché il mio testo bianco è ancora grigio ..."), usa l'opacità: 1
jwinn,

8
In IE10 *:-ms-input-placeholdere di :-ms-input-placeholderper sé non funziona, ma INPUT:-ms-input-placeholderfunziona. Dispari.
Jared il

37
Nota per Bootstrap 3: la classe "form-control" sovrascrive il colore a causa della specificità CSS (cioè "form-control :: - webkit-input-placeholder"), quindi devi essere almeno altrettanto specifico o usare "! Important" nel tuo CSS. (questo è stato un inferno per il debug in quanto né Firebug né Devtools sembrano mostrare questa pseudo classe)
Costa

725

/* 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>

Questo disegnerà tutti inpute textareasegnaposto.

Nota importante: non raggruppare queste regole. Invece, crea una regola separata per ogni selettore (un selettore non valido in un gruppo rende l'intero gruppo non valido).


2
Il documento MSDN a cui ti sei collegato, afferma che è supportato solo in Internet Explorer 10. Ancora una buona scoperta, ma non molto utile fino a quando la base di utenti IE10 non diventa significativa (per questo potremmo considerare un intervallo di anni).
danishgoel,

1
Realisticamente, vorrai modellare i segnaposto in tutto il sito in modo uniforme, non modellare ogni singolo input per ID.
BadHorsie,

10
Dopo FF19 devi usare :: - moz-placeholder
viplezer

1
Devi mettere questo CSS in fondo al tuo foglio di stile, se applichi anche una classe sull'input, per farlo funzionare su IE (11). Guarda questo fork su JSFiddle jsfiddle.net/9kkef . Apri la pagina sia in IE che in un altro browser, in IE vedrai che il testo segnaposto sarà nel colore della classe applicata.
Timo002,

A volte, se non funziona, aggiungi <! Important> alla proprietà color.
Ahmed Na.

277

Potresti anche voler modellare le textareas:

input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
  color: #636363;
}
input:-moz-placeholder, textarea:-moz-placeholder {
  color: #636363;
}

2
sulla stampa in Chrome non funziona ... nessun aiuto @media print {input [tipo = testo] .form-control :: - webkit-input-placeholder, input [type = textarea] .form-control :: - webkit -input-placeholder {color: #FFFFFF; }}
Mahdi Alkhatib,

107

Per Bootstrap e Meno utenti, esiste un mixin .placeholder:

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

16
O ancora più semplice, modifica la variabile @input-color-placeholder- di solito si trova in variabili.less
William

@William non sarebbe più semplice definire il selettore stesso e usare il mixin per evitare di dover tornare indietro e cambiarlo nel caso in cui stai cercando di rendere il segnaposto di un altro input di un colore diverso?
Brandito,

@Brandito - che sembra un caso limite - generalmente il colore segnaposto è lo stesso per tutti gli elementi della forma all'interno di un disegno.
William,

@William Mi dispiace di essere terribile nel formulare questo genere di cose, ho pensato che sarebbe stato meglio usare il mixin con l'argomento del colore di input che desideri, anche se onestamente, probabilmente sto pensando ai casi limite che ho ' Sono abituato (stile del segnaposto di input di ricerca in cui si trova su uno sfondo colorato: P) quindi mi dispiace ma hai ragione, mi scuso.
Brandito,

99

Oltre alla risposta di toscho, ho notato alcune incongruenze del webkit tra Chrome 9-10 e Safari 5 con le proprietà CSS supportate che vale la pena notare.

In particolare Chrome 9 e 10 non supportano background-color, border, text-decoratione text-transformquando lo styling il segnaposto.

Il confronto completo tra browser è qui .


76

Per gli utenti di Sass :

// 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);
}

Modo più flessibile - da usare@content;
milkovsky

60

Funzionerà benissimo. DEMO QUI:

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #666;
}
input:-moz-placeholder,
textarea:-moz-placeholder {
  color: #666;
}
input::-moz-placeholder,
textarea::-moz-placeholder {
  color: #666;
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #666;
}
<input type="text" placeholder="Value" />


1
Ho dovuto aggiungere! Importante anche in Firefox v56
Savage

49

In Firefox e Internet Explorer, il normale colore del testo di input sovrascrive la proprietà color dei segnaposto. Quindi, dobbiamo

::-webkit-input-placeholder { 
    color: red; text-overflow: ellipsis; 
}
:-moz-placeholder { 
    color: #acacac !important; text-overflow: ellipsis; 
}
::-moz-placeholder { 
    color: #acacac !important; text-overflow: ellipsis; 
} /* For the future */
:-ms-input-placeholder { 
    color: #acacac !important; text-overflow: ellipsis; 
}

41

Soluzione cross-browser:

/* all elements */
::-webkit-input-placeholder { color:#f00; }
::-moz-placeholder { color:#f00; } /* firefox 19+ */
:-ms-input-placeholder { color:#f00; } /* ie */
input:-moz-placeholder { color:#f00; }

/* individual elements: webkit */
#field2::-webkit-input-placeholder { color:#00f; }
#field3::-webkit-input-placeholder { color:#090; background:lightgreen; text-transform:uppercase; }
#field4::-webkit-input-placeholder { font-style:italic; text-decoration:overline; letter-spacing:3px; color:#999; }

/* individual elements: mozilla */
#field2::-moz-placeholder { color:#00f; }
#field3::-moz-placeholder { color:#090; background:lightgreen; text-transform:uppercase; }
#field4::-moz-placeholder { font-style:italic; text-decoration:overline; letter-spacing:3px; color:#999; }

Credito: David Walsh


41

Utilizzare il nuovo ::placeholderse si utilizza la correzione automatica .

Si noti che il mixin .placeholder di Bootstrap è deprecato a favore di questo.

Esempio:

input::placeholder { color: black; }

Quando si utilizza autoprefixer, quanto sopra verrà convertito nel codice corretto per tutti i browser.


40

Ora abbiamo un modo standard per applicare i CSS al segnaposto di un input: ::placeholderpseudo-elemento da questa bozza di livello 4 del modulo CSS.


Funziona con Firefox 51. Userò solo questo metodo; gli altri browser mi raggiungeranno abbastanza presto per me (dato che nessuna funzionalità viene interrotta se lo stile da standard non viene applicato).
Lonnie Best

36

Ho appena realizzato qualcosa per Mozilla Firefox 19+ che il browser dà un valore di opacità per il segnaposto, quindi il colore non sarà quello che vuoi davvero.

input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
    color: #eee; opacity:1;
}
input:-moz-placeholder, textarea:-moz-placeholder {
    color: #eee; opacity:1;
}
input::-moz-placeholder, textarea::-moz-placeholder {
    color: #eee; opacity:1;
}
input:-ms-input-placeholder, textarea:-ms-input-placeholder {
    color: #eee; opacity:1;
}

Ho sovrascritto il valore opacityper 1, quindi andrà bene.


35

Non ricordo dove ho trovato questo frammento di codice su Internet (non è stato scritto da me, non ricordo dove l'ho trovato, né chi lo ha scritto).

$('[placeholder]').focus(function() {
        var input = $(this);
        if (input.val() == input.attr('placeholder')) {
            input.val('');
            input.removeClass('placeholder');
        }
    }).blur(function() {
        var input = $(this);
        if (input.val() == '' || input.val() == input.attr('placeholder')) {
            input.addClass('placeholder');
            input.val(input.attr('placeholder'));
        }
    }).blur();
    $('[placeholder]').parents('form').submit(function() {
        $(this).find('[placeholder]').each(function() {
            var input = $(this);
            if (input.val() == input.attr('placeholder')) {
                input.val('');
            }
        })
    });

Basta caricare questo codice JavaScript e quindi modificare il segnaposto con CSS chiamando questa regola:

form .placeholder {
   color: #222;
   font-size: 25px;
   /* etc. */
}

3
Questo è il vecchio modo di farlo, che ho usato parecchio. Lo svantaggio è che il testo segnaposto scompare quando si mette a fuoco. Ho trovato questo fastidioso quando l'interfaccia utente non include anche le etichette accanto all'input. Negli ultimi mesi ho iniziato a sostituire questo metodo con l'uso del testo segnaposto, che penso sia un miglioramento UX.
Redtopia,

4
L'altro problema con codice come questo è che il codice sul lato server ha a che fare con il testo segnaposto come input vuoto, che ha problemi con i casi limite in cui si desidera inserire una città chiamata "Città". Invece di verificare i valori rispetto al testo segnaposto, è necessario utilizzare un flag modificato dai dati sull'input e quindi cancellare l'input sull'invio del modulo se il flag non è impostato. E per le interfacce AJAX potresti non avere nemmeno un modulo, quindi dovresti essere in grado di associare un evento di invio arbitrario all'input. Questa è una di quelle situazioni davvero semplici che non lo sono.
Whelkaholism

34

Penso che questo codice funzionerà perché un segnaposto è necessario solo per il testo del tipo di input. Quindi questo CSS a una riga sarà sufficiente per le tue esigenze:

input[type="text"]::-webkit-input-placeholder {
    color: red;
}

Non usarlo più. Ci sono molti altri elementi con segnaposto e più prefissi. Vedi le soluzioni sopra o usa ::placeholderinsieme a autoprefixer.
RiZKiT

33

Per gli utenti Bootstrap , se si utilizza class="form-control", potrebbe esserci un problema di specificità CSS. Dovresti avere una priorità più alta:

.form-control::-webkit-input-placeholder {
    color: red;
}
//.. and other browsers

O se stai usando Meno :

.form-control{
    .placeholder(red);
}

19

Se stai usando Bootstrap e non riesci a farlo funzionare, probabilmente ti sei perso il fatto che Bootstrap stesso aggiunge questi selettori. Stiamo parlando di Bootstrap v3.3.

Se stai cercando di cambiare il segnaposto all'interno di una classe CSS .form-control, dovresti sovrascriverlo in questo modo:

.form-control::-webkit-input-placeholder { /* WebKit, Blink, Edge */
    color:    #777;
}
.form-control:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
    color:    #777;
    opacity:  1;
}
.form-control::-moz-placeholder { /* Mozilla Firefox 19+ */
    color:    #777;
    opacity:  1;
}
.form-control:-ms-input-placeholder { /* Internet Explorer 10-11 */
    color:    #777;
}

17

Questo codice breve e pulito:

::-webkit-input-placeholder {color: red;}
:-moz-placeholder           {color: red; /* For Firefox 18- */}
::-moz-placeholder          {color: red; /* For Firefox 19+ */}
:-ms-input-placeholder      {color: red;}

17

Cosa ne pensi di questo

<input type="text" value="placeholder text" onfocus="this.style.color='#000'; 
    this.value='';" style="color: #f00;" />

Nessun CSS o segnaposto, ma ottieni la stessa funzionalità.


15
cosa succede se qualcuno fa di nuovo clic dopo aver scritto qualcosa .. il testo originale che hanno scritto sparirà!
Lucky Soni,

3
@LuckySoni si potrebbe fare questo, ma io personalmente preferisco il primo. <input type="text" value="placeholder text" onfocus="if(!this.haswriting){this.style.color='#000'; this.value='';}" onblur="if(!this.value){this.style.color='#f00'; this.value='placeholder text'; this.haswriting=false;}else{this.haswriting=true};" style="color: #f00;"/>
user1729061

9
Anche la tua seconda versione non fornisce la stessa funzionalità. Se l'utente invia il <form>con questo input, il testo segnaposto verrà inviato al server. Ho visto così tanti siti fare questo male.
lqc

Questo è pericoloso! Se torni di nuovo nella forma hai perso tutto!
Mobarak Ali,

15

Ho provato tutte le combinazioni qui per cambiare il colore, sulla mia piattaforma mobile, e alla fine è stato:

-webkit-text-fill-color: red;

che ha fatto il trucco.


2
This property allows you to specify a fill color for text. If it is not set, then the color property will be used to do the fill.Mi sembra che tu abbia qualche altra regola CSS che sta impostando la colorproprietà.
David Murdoch,

8

Per l'utente SASS / SCSS che usa Bourbon , ha una funzione integrata.

//main.scss
@import 'bourbon';

input {
  width: 300px;

  @include placeholder {
    color: red;
  }
}

Output CSS, puoi anche prendere questa porzione e incollarla nel tuo codice.

//main.css

input {
  width: 300px;
}

input::-webkit-input-placeholder {
  color: red;
}
input:-moz-placeholder {
  color: red;
}
input::-moz-placeholder {
  color: red;
}
input:-ms-input-placeholder {
  color: red;
}

8

prova questo codice per diversi elementi di input stile diverso

your css selector::-webkit-input-placeholder { /*for webkit */
    color:#909090;
    opacity:1;
}
 your css selector:-moz-placeholder { /*for mozilla */
    color:#909090;
    opacity:1;
}
 your css selector:-ms-input-placeholder { /*for for internet exprolar */ 
   color:#909090;
   opacity:1;
}

Esempio 1:

input[type="text"]::-webkit-input-placeholder { /*for webkit */
    color: red;
    opacity:1;
}
 input[type="text"]:-moz-placeholder { /*for mozilla */
    color: red;
    opacity:1;
}
 input[type="text"]:-ms-input-placeholder { /*for for internet exprolar */ 
   color: red;
   opacity:1;
}

esempio 2:

input[type="email"]::-webkit-input-placeholder { /*for webkit */
    color: gray;
    opacity:1;
}
 input[type="email"]:-moz-placeholder { /*for mozilla */
    color: gray;
    opacity:1;
}
 input[type="email"]:-ms-input-placeholder { /*for for internet exprolar */ 
   color: gray;
   }

5

Ecco un altro esempio:

.form-control::-webkit-input-placeholder {
  color: red;
  width: 250px;
}
h1 {
  color: red;
}
<div class="col-sm-4">
  <input class="form-control" placeholder="Enter text here.." ng-model="Email" required/>
</div>


5

Aggiungendo un'effettiva possibilità molto bella e semplice: filtri CSS !

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Disegnerà tutto, incluso il segnaposto.

Quanto segue imposterà entrambi gli input sulla stessa tavolozza, usando il filtro tonalità per il cambio colore. Ora viene visualizzato molto bene nei browser (tranne per esempio ...)

input {
  filter: sepia(100%) saturate(400%) grayscale(0) contrast(200%) hue-rotate(68deg) invert(18%);
}
<input placeholder="Hello world!" />
<input type="date" /><br>
<input type="range" />
<input type="color" />

Per consentire agli utenti di modificarlo in modo dinamico, utilizzando un colore di tipo di input per le modifiche o per trovare sfumature, dai un'occhiata a questo frammento:

Da: https://codepen.io/Nico_KraZhtest/pen/bWExEB

function stylElem() {
  stylo.dataset.hue = ((parseInt(stylo.value.substring(1), 16))/46666).toFixed(0)
  Array.from(document.querySelectorAll('input, audio, video')).forEach(function(e){
      e.style.cssText += ";filter:sepia(100%) saturate(400%)grayscale(0)contrast(200%)hue-rotate("+ stylo.dataset.hue+"deg)invert("+(stylo.dataset.hue/3.6)+"%)"
  out.innerText = e.style.cssText
})()}

stylElem()
<div id="out"></div> <p>
  <input placeholder="Hello world!" />
  <input type="date" /><br>
  <input type="range" />
  <input type="color" />
Colors (change me)-> 
<input type="color" id="stylo" oninput="stylElem()" /> <br><br>
<audio controls src="#"></audio> <br><br> 
<video controls src="#"></video>

Documenti sui filtri css: https://developer.mozilla.org/en-US/docs/Web/CSS/filter


4

OK, i segnaposto si comportano in modo diverso nei diversi browser, quindi è necessario utilizzare il prefisso del browser nei CSS per renderli identici, ad esempio Firefox fornisce una trasparenza al segnaposto per impostazione predefinita, quindi è necessario aggiungere l'opacità 1 al CSS, più il colore, non è una grande preoccupazione il più delle volte, ma è bene averli coerenti:

*::-webkit-input-placeholder { /* WebKit browsers */
    color:    #ccc;
}
*:-moz-placeholder { /* Mozilla Firefox <18 */
    color:    #ccc;
    opacity:  1;
}
*::-moz-placeholder { /* Mozilla Firefox 19+ */
    color:    #ccc;
    opacity:  1;
}
*:-ms-input-placeholder { /* Internet Explorer 10-11 */
    color:    #ccc;
}

3

Puoi cambiare il colore del segnaposto di un input HTML5 con CSS. Se per caso, il tuo conflitto CSS, questa nota di codice funziona, puoi usare (! Important) come di seguito.

::-webkit-input-placeholder { /* WebKit, Blink, Edge */
    color:#909 !important;
}
:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
   color:#909 !important;
   opacity:1 !important;
}
::-moz-placeholder { /* Mozilla Firefox 19+ */
   color:#909 !important;
   opacity:1 !important;
}
:-ms-input-placeholder { /* Internet Explorer 10-11 */
   color:#909 !important;
}
::-ms-input-placeholder { /* Microsoft Edge */
   color:#909 !important;
}

<input placeholder="Stack Snippets are awesome!">

Spero che questo possa aiutare.


3

Puoi usarlo per lo stile di input e focus:

input::-webkit-input-placeholder  { color:#666;}
input:-moz-placeholder  { color:#666;}
input::-moz-placeholder { color:#666;}
input:-ms-input-placeholder  { color:#666;}
/* focus */
input:focus::-webkit-input-placeholder { color:#eee; }
input:focus:-moz-placeholder { color:#eee } /* FF 4-18 */
input:focus::-moz-placeholder { color:#eee } /* FF 19+ */
input:focus:-ms-input-placeholder { color:#eee } /* IE 10+ */

2

Il modo più semplice sarebbe:

#yourInput::placeholder {
    color: red;/*As an example*/
}
/* if that would not work, you can always try styling the attribute itself: */
#myInput[placeholder] {
    color: red;
}


1

Ecco la soluzione con i selettori CSS

::-webkit-input-placeholder { /* WebKit, Blink, Edge */
    color:    #909;
}
:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
   color:    #909;
   opacity:  1;
}
::-moz-placeholder { /* Mozilla Firefox 19+ */
   color:    #909;
   opacity:  1;
}
::-ms-input-placeholder { /* Microsoft Edge */
   color:    #909;
}
:-ms-input-placeholder { /* Internet Explorer 10-11 */
   color:    #909;
}
  • WebKit, Blink (Safari, Google Chrome, Opera 15+) e Microsoft Edge utilizzano uno pseudo-elemento:
    :: - webkit-input-placeholder.
  • Mozilla Firefox da 4 a 18 utilizza una pseudo-classe
    :: -moz-segnaposto (due punti).
    Mozilla Firefox 19+ utilizza uno pseudo-elemento:
    :: - moz-placeholder, ma il vecchio selettore funzionerà ancora per un po '.
  • Internet Explorer 10 e 11 utilizzano una pseudo-classe
    :: -ms-input-placeholder.
  • Internet Explorer 9 e versioni precedenti non supportano affatto l'attributo segnaposto, mentre Opera 12 e versioni precedenti non supportano alcun selettore CSS per segnaposto.

0

Una parte di HTML:

 <form action="www.anything.com">
 <input type="text" name="name"
  placeholder="Enter sentence"/>
  </form>

Mostrerò come cambiare il colore dell'espressione di "Inserisci frase" da CSS:

  ::placeholder{
  color:blue;
   }
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.