Ubah warna placeholder input HTML5 dengan CSS

3975

Chrome mendukung atribut placeholder pada input[type=text]elemen (orang lain mungkin juga melakukannya).

Tetapi yang berikut CSSini tidak melakukan apa pun terhadap nilai placeholder:

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

Valueakan tetap greysebagai gantinya red.

Apakah ada cara untuk mengubah warna teks placeholder?

David Murdoch
sumber
375
Head-up cepat (bukan solusi, hanya FYI): jika saya ingat dengan benar, input [placeholder] hanya cocok dengan tag <input> yang memiliki atribut placeholder, itu tidak cocok dengan atribut placeholder itu sendiri.
pinkgothic
12
Yah, pikiran terlintas di benak saya bahwa ini mungkin seperti mencoba gaya atribut "judul" elemen. Jadi +1 untuk berpikir sama!
David Murdoch
5
@MathiasBynens The: pseudo-class yang ditampilkan placeholder cocok dengan elemen input yang menampilkan teks placeholder tersebut. Jadi cocok dengan <input>tag, seperti inputpemilih, tetapi menampilkan teks placeholder sekarang. Itu juga tidak cocok dengan atribut placeholder itu sendiri.
HEX
3
@ HEX Ini tidak seperti inputpemilih karena itu memilih semua inputelemen. :placeholder-shownhanya memilih inputelemen yang saat ini menunjukkan placeholder, yang memungkinkan Anda untuk mendesain elemen-elemen itu saja, dan secara efektif gaya teks placeholder. Apa yang kamu coba katakan?
Mathias Bynens
1
@HEX (Tentu saja, ia juga memilih textareaelemen yang menampilkan teks placeholder.)
Mathias Bynens

Jawaban:

4809

Penerapan

Ada tiga implementasi yang berbeda: elemen pseudo, kelas pseudo, dan tidak ada.

  • WebKit, Blink (Safari, Google Chrome, Opera 15 +) dan Microsoft Edge menggunakan pseudo-elemen: ::-webkit-input-placeholder. [ Ref ]
  • Mozilla Firefox 4 hingga 18 menggunakan pseudo-class: :-moz-placeholder( satu titik dua). [ Ref ]
  • Mozilla Firefox 19+ menggunakan pseudo-element:, ::-moz-placeholdertetapi pemilih lama akan tetap bekerja untuk sementara waktu. [ Ref ]
  • Internet Explorer 10 dan 11 menggunakan pseudo-class: :-ms-input-placeholder. [ Ref ]
  • April 2017: Sebagian besar browser modern mendukung elemen semu sederhana ::placeholder [ Ref ]

Internet Explorer 9 dan lebih rendah tidak mendukung placeholderatribut sama sekali, sedangkan Opera 12 dan lebih rendah tidak mendukung pemilih CSS untuk placeholder.

Diskusi tentang implementasi terbaik masih berlangsung. Perhatikan elemen pseudo bertindak seperti elemen nyata di Shadow DOM . A paddingpada sebuah inputtidak akan mendapatkan warna latar belakang yang sama dengan pseudo-element.

Penyeleksi CSS

Agen pengguna harus mengabaikan aturan dengan pemilih yang tidak dikenal. Lihat Selectors Level 3 :

Sebuah kelompok penyeleksi mengandung pemilih tidak valid tidak valid.

Jadi kita membutuhkan aturan terpisah untuk setiap browser. Kalau tidak, seluruh grup akan diabaikan oleh semua 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!">

Catatan penggunaan

  • Hati-hati untuk menghindari kontras yang buruk. Placeholder Firefox tampaknya menjadi default dengan opacity berkurang, jadi perlu digunakanopacity: 1 sini.
  • Perhatikan bahwa teks placeholder hanya terpotong jika tidak sesuai - ukuran elemen input Anda emdan mengujinya dengan pengaturan ukuran font minimum yang besar. Jangan lupa terjemahan: beberapa bahasa membutuhkan lebih banyak ruang untuk kata yang sama.
  • Browser dengan dukungan HTML untuk placeholder tetapi tanpa dukungan CSS untuk itu (seperti Opera) harus diuji juga.
  • Beberapa browser menggunakan CSS default tambahan untuk beberapa inputtipe ( email, search). Ini mungkin memengaruhi rendering dengan cara yang tidak terduga. Gunakan properti -webkit-appearance dan -moz-appearanceuntuk mengubahnya. Contoh:
    [type="search"] {
        -moz-appearance:    textfield;
        -webkit-appearance: textfield;
        appearance: textfield;
    }
fuxia
sumber
27
Perhatikan juga bahwa meskipun Webkit menganggap ini memiliki kekhususan yang agak kuat, Mozilla tidak. Anda mungkin harus memasukkan beberapa importir ke sana untuk mendapatkan hal-hal yang muncul.
dmnc
18
@toscho: terima kasih atas jawaban yang bagus. Saya hanya perlu sedikit demonstrasi "hidup", jadi contoh Anda juga dapat dihubungi di sini: jsfiddle.net/Sk8erPeter/KyVXK . Terima kasih lagi.
Sk8erPeter
90
Placeholder Firefox tampaknya menjadi default dengan opacity berkurang. Untuk orang lain yang sulit menyegarkan dan bertanya-tanya mengapa ini tampaknya tidak berfungsi ("mengapa teks putih saya masih abu-abu .."), gunakan opacity: 1
jwinn
8
Di IE10 *:-ms-input-placeholderdan :-ms-input-placeholderdengan sendirinya tidak bekerja, tetapi INPUT:-ms-input-placeholdertidak. Aneh.
Jared
37
Catatan untuk Bootstrap 3: "form-control" kelas menimpa warna karena kekhususan CSS (yaitu "form-control :: - webkit-input-placeholder"), jadi Anda harus setidaknya sebagai spesifik atau menggunakan "! Penting" di CSS Anda. (Ini adalah neraka untuk di-debug karena Firebug atau Devtools tampaknya tidak menunjukkan kelas semu ini)
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>

Ini akan memberi gaya pada semua inputdan textareapenampung.

Catatan Penting: Jangan kelompokkan aturan ini. Alih-alih, buat aturan terpisah untuk setiap pemilih (satu pemilih yang tidak valid dalam grup membuat seluruh grup menjadi tidak valid).

brillout
sumber
2
Dokumen MSDN yang Anda tautkan, menyatakan hanya didukung di Internet Explorer 10. Masih merupakan temuan yang bagus, tetapi tidak terlalu berguna sampai basis pengguna IE10 menjadi signifikan (kami mungkin melihat kerangka waktu bertahun-tahun untuk itu).
danishgoel
1
Secara realistis, Anda akan ingin membuat penampung gaya di seluruh situs secara seragam, bukan gaya setiap input individu dengan ID.
BadHorsie
10
Setelah FF19, Anda harus menggunakan :: - moz-placeholder
viplezer
1
Anda perlu meletakkan CSS ini di bagian bawah stylesheet Anda, jika Anda juga menerapkan kelas pada input, agar dapat berfungsi pada IE (11). Lihat garpu ini di JSFiddle jsfiddle.net/9kkef . Buka halaman di IE dan browser lain, di IE Anda akan melihat bahwa teks placeholder akan berwarna kelas yang diterapkan.
Timo002
Terkadang jika tidak berfungsi, tambahkan <! Important> ke properti warna.
Ahmed Na.
277

Anda mungkin juga ingin menata textareas:

input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
  color: #636363;
}
input:-moz-placeholder, textarea:-moz-placeholder {
  color: #636363;
}
Matt
sumber
2
pada pencetakan di chrome tidak berfungsi ... bantuan @ media cetak {input [type = text] .form-control :: - webkit-input-placeholder, input [type = textarea] .form-control :: - webkit -input-placeholder {color: #FFFFFF; }}
Mahdi Alkhatib
107

Untuk pengguna Bootstrap dan Less , ada mixin .placeholder:

// Placeholder text
// -------------------------
.placeholder(@color: @placeholderText) {
  &:-moz-placeholder {
    color: @color;
  }
  &:-ms-input-placeholder {
    color: @color;
  }
  &::-webkit-input-placeholder {
    color: @color;
  }
}
EIIPII
sumber
16
Atau bahkan lebih sederhana, edit variabel @input-color-placeholder- biasanya ditemukan di variabel.less
William
@ William bukankah akan lebih mudah untuk menentukan pemilih itu sendiri dan menggunakan mixin untuk menghindari harus kembali dan mengubahnya jika Anda ingin membuat pengganti placeholder lain warna yang berbeda?
Brandito
@Brandito - yang terdengar seperti kasing tepi - umumnya warna placeholder sama untuk semua elemen bentuk dalam desain.
William
@ William Maaf saya buruk dalam mengeja hal-hal semacam ini, saya pikir akan lebih baik menggunakan mixin dengan argumen warna input yang Anda inginkan walaupun cukup jujur, saya mungkin berpikir tentang kasus tepi saya ' m digunakan untuk (styling placeholder input pencarian di mana itu pada latar belakang berwarna: P) sangat menyesal tetapi Anda benar, permintaan maaf.
Brandito
99

Selain jawaban toscho saya perhatikan beberapa ketidakkonsistenan webkit antara Chrome 9-10 dan Safari 5 dengan properti CSS yang didukung yang patut dicatat.

Secara khusus Chrome 9 dan 10 tidak mendukung background-color, border, text-decorationdan text-transformketika styling placeholder.

Perbandingan lintas-browser lengkap ada di sini .

ajcw
sumber
76

Untuk pengguna 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);
}
Konst_
sumber
Cara yang lebih fleksibel - untuk menggunakan@content;
milkovsky
60

Ini akan bekerja dengan baik. DEMO DI SINI:

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

Cinta Trivedi
sumber
1
Saya juga harus menambahkan! Penting di Firefox v56
Savage
49

Di Firefox dan Internet Explorer, warna teks input normal menimpa properti warna placeholder. Jadi, kita perlu melakukannya

::-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; 
}
Dionysios Arvanitis
sumber
41

Solusi lintas-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; }

Kredit: David Walsh

Kristian
sumber
41

Gunakan yang baru ::placeholderjika Anda menggunakan autoprefixer .

Perhatikan bahwa .placeholder mixin dari Bootstrap sudah tidak digunakan lagi.

Contoh:

input::placeholder { color: black; }

Saat menggunakan autoprefixer di atas akan dikonversi ke kode yang benar untuk semua browser.

hitautodestruct
sumber
40

Sekarang kita memiliki cara standar untuk menerapkan CSS ke placeholder input: ::placeholderpseudo-element dari Draft Modul Level 4 CSS ini .

user3790069
sumber
Ini berfungsi di Firefox 51. Saya hanya akan menggunakan metode ini; browser lain akan segera menyusul untuk saya (mengingat bahwa tidak ada fungsi yang rusak jika gaya to-be-standar tidak diterapkan).
Lonnie Best
36

Saya baru menyadari sesuatu untuk Mozilla Firefox 19+ bahwa browser memberikan nilai opacity untuk placeholder, jadi warnanya tidak akan seperti yang Anda inginkan.

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

Saya menimpa opacityuntuk 1, jadi itu akan baik untuk pergi.

Burak Tokak
sumber
35

Saya tidak ingat di mana saya menemukan potongan kode ini di Internet (itu tidak ditulis oleh saya, tidak ingat di mana saya menemukannya, atau siapa yang menulisnya).

$('[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('');
            }
        })
    });

Cukup muat kode JavaScript ini lalu edit placeholder Anda dengan CSS dengan memanggil aturan ini:

form .placeholder {
   color: #222;
   font-size: 25px;
   /* etc. */
}
Dragos Rizescu
sumber
3
Ini adalah cara lama untuk melakukannya, yang telah saya gunakan sedikit. Kerugiannya adalah teks placeholder menghilang ketika Anda fokus. Saya menemukan ini mengganggu ketika UI juga tidak menyertakan label di sebelah input. Selama beberapa bulan terakhir saya sudah mulai mengganti metode ini dengan menggunakan teks placeholder, yang saya pikir merupakan peningkatan UX.
Redtopia
4
Masalah lain dengan kode seperti ini adalah kode sisi server Anda harus berurusan dengan teks placeholder sebagai input kosong, yang memiliki masalah dengan kasus tepi di mana Anda ingin memasukkan kota yang disebut "Kota". Alih-alih memeriksa nilai terhadap teks placeholder, Anda harus benar-benar menggunakan flag yang dimodifikasi data pada input, dan lalu menghapus input pada form yang dikirimkan jika flag tidak disetel. Dan untuk antarmuka AJAX Anda bahkan mungkin tidak memiliki formulir, jadi Anda harus dapat mengaitkan acara pengiriman sewenang-wenang dengan input. Ini adalah salah satu situasi yang sangat sederhana yang tidak.
Whelkaholism
34

Saya pikir kode ini akan berfungsi karena placeholder diperlukan hanya untuk teks jenis input. Jadi CSS satu baris ini akan cukup untuk kebutuhan Anda:

input[type="text"]::-webkit-input-placeholder {
    color: red;
}
Alias ​​Varghese
sumber
Jangan gunakan yang ini lagi. Ada beberapa elemen lainnya dengan pengganti dan lebih banyak awalan. Lihat solusi di atas atau gunakan ::placeholderbersama dengan autoprefixer.
RiZKiT
33

Untuk pengguna Bootstrap , jika Anda menggunakan class="form-control", mungkin ada masalah kekhususan CSS. Anda harus mendapatkan prioritas yang lebih tinggi:

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

Atau jika Anda menggunakan Less :

.form-control{
    .placeholder(red);
}
gfaceless
sumber
19

Jika Anda menggunakan Bootstrap dan tidak bisa menjalankannya, mungkin Anda melewatkan fakta bahwa Bootstrap sendiri menambahkan penyeleksi ini. Ini adalah Bootstrap v3.3 yang sedang kita bicarakan.

Jika Anda mencoba mengubah placeholder di dalam kelas CSS .form-control maka Anda harus menimpanya seperti ini:

.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;
}
stable_daddy
sumber
17

Kode singkat dan bersih ini:

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

Bagaimana dengan ini

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

Tidak ada CSS atau placeholder, tetapi Anda mendapatkan fungsionalitas yang sama.

pengguna1729061
sumber
15
apa yang terjadi jika seseorang mengklik lagi setelah menulis sesuatu .. teks asli yang mereka tulis akan hilang!
Lucky Soni
3
@ LuckySoni Anda bisa melakukan ini, tapi saya pribadi lebih suka yang pertama. <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
Bahkan versi kedua Anda tidak menyediakan fungsionalitas yang sama. Jika pengguna mengirimkan <form>dengan input ini, teks placeholder akan dikirim ke server. Saya melihat begitu banyak situs melakukan kesalahan ini.
lqc
Ini berbahaya! Jika Anda kembali lagi ke bentuk Anda kehilangan segalanya!
Mobarak Ali
15

Saya telah mencoba setiap kombinasi di sini untuk mengubah warna, pada platform seluler saya, dan akhirnya:

-webkit-text-fill-color: red;

yang berhasil.

aviram83
sumber
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.Kedengarannya bagi saya seperti Anda punya beberapa aturan CSS lain yang mengatur colorproperti.
David Murdoch
8

Untuk pengguna SASS / SCSS menggunakan Bourbon , ia memiliki fungsi bawaan.

//main.scss
@import 'bourbon';

input {
  width: 300px;

  @include placeholder {
    color: red;
  }
}

Output CSS, Anda juga dapat mengambil bagian ini dan menempelkannya ke kode Anda.

//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;
}
trungk18
sumber
8

coba kode ini untuk berbagai elemen masukan gaya yang berbeda

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

Contoh 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;
}

contoh 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;
   }
Ny. Abu Sayed
sumber
5

Ini satu contoh lagi:

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

Mahendra Kulkarni
sumber
5

Menambahkan kemungkinan aktual yang sangat bagus dan sederhana: filter css !

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Ini akan mengatur segalanya, termasuk placeholder.

Berikut ini akan mengatur kedua input pada palet yang sama, menggunakan filter rona untuk perubahan warna. Itu membuat sangat baik sekarang di browser (kecuali yaitu ...)

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

Untuk memungkinkan pengguna mengubahnya secara dinamis, menggunakan warna jenis input untuk perubahan, atau untuk menemukan nuansa, lihat cuplikan ini:

Dari: 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>

Css memfilter dokumen: https://developer.mozilla.org/en-US/docs/Web/CSS/filter

Cryptopat
sumber
4

OK, placeholder berperilaku berbeda di browser yang berbeda, jadi Anda perlu menggunakan awalan peramban di CSS Anda untuk menjadikannya identik, misalnya Firefox memberikan transparansi kepada placeholder secara default, jadi perlu menambahkan opacity 1 ke css Anda, ditambah warnanya, bukan perhatian besar sebagian besar kali, tetapi bagus untuk membuat mereka konsisten:

*::-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;
}
Alireza
sumber
3

Anda dapat mengubah warna placeholder input HTML5 dengan CSS. Jika kebetulan, konflik CSS Anda, catatan kode ini berfungsi, Anda dapat menggunakan (! Penting) seperti di bawah ini.

::-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!">

Semoga ini bisa membantu.

Deepak Kumar
sumber
3

Anda dapat menggunakan ini untuk gaya input dan fokus:

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+ */
fraweb
sumber
2

Cara termudah adalah:

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

Berikut ini solusinya dengan pemilih 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+) dan Microsoft Edge menggunakan elemen pseudo:
    :: - webkit-input-placeholder.
  • Mozilla Firefox 4 hingga 18 menggunakan pseudo-class
    :: -moz-placeholder (satu titik dua).
    Mozilla Firefox 19+ menggunakan elemen pseudo:
    :: - moz-placeholder, tetapi pemilih lama akan tetap berfungsi untuk sementara waktu.
  • Internet Explorer 10 dan 11 menggunakan pseudo-class
    :: -ms-input-placeholder.
  • Internet Explorer 9 dan yang lebih rendah sama sekali tidak mendukung atribut placeholder, sementara Opera 12 dan yang lebih rendah tidak mendukung pemilih CSS untuk placeholder.
Mohammad Ayoub Khan
sumber
0

Bagian dari HTML:

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

Saya akan menunjukkan cara mengubah warna ekspresi 'Masukkan kalimat' dengan CSS:

  ::placeholder{
  color:blue;
   }
dev_cc
sumber