HTML sederhana di bawah ini ditampilkan secara berbeda di browser berbasis Firefox dan WebKit (saya memeriksa di Safari, Chrome dan iPhone).
Di Firefox, batas dan teks memiliki warna yang sama ( #880000
), tetapi di Safari teks menjadi sedikit lebih terang (seolah-olah ada transparansi yang diterapkan padanya).
Dapatkah saya memperbaiki ini (menghapus transparansi ini di Safari)?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
input:disabled{
border:solid 1px #880000;
background-color:#ffffff;
color:#880000;
}
</style>
</head>
<body>
<form action="">
<input type="text" value="disabled input box" disabled="disabled"/>
</form>
</body>
</html>
Jawaban:
-webkit-text-fill-color: #880000; opacity: 1; /* required on iOS */
sumber
1
Mobile Safari.opacity:1
juga perlu.placeholder
warna teks dariinput
elemen tersebut. Jika Anda memerlukan perbaikan untuk itu juga, lihat tautan ini: css-tricks.com/almanac/selectors/p/placeholderBrowser webkit Ponsel dan Tablet (Safari dan Chrome) serta desktop IE memiliki sejumlah perubahan default ke elemen formulir yang dinonaktifkan yang harus Anda ganti jika Anda ingin memberi gaya pada input yang dinonaktifkan.
-webkit-text-fill-color:#880000; /* Override iOS / Android font color change */ -webkit-opacity:1; /* Override iOS opacity change affecting text & background color */ color:#880000; /* Override IE font color change */
sumber
itu pertanyaan yang menarik dan saya sudah mencoba banyak penggantian untuk melihat apakah saya bisa menjalankannya, tetapi tidak ada yang berhasil. Peramban modern sebenarnya menggunakan lembar gayanya sendiri untuk memberi tahu elemen cara menampilkannya, jadi mungkin jika Anda dapat mengendus lembar gaya Chrome, Anda dapat melihat gaya apa yang mereka paksakan. Saya akan sangat tertarik dengan hasilnya dan jika Anda tidak memilikinya, saya akan menghabiskan sedikit waktu untuk mencarinya nanti ketika saya punya waktu untuk disia-siakan.
FYI,
opacity: 1!important;
tidak menimpanya, jadi saya tidak yakin opasitasnya.
sumber
Anda dapat mengubah warna menjadi
#440000
hanya untuk Safari, tetapi IMHO solusi terbaik adalah tidak mengubah tampilan tombol sama sekali . Dengan cara ini, di setiap browser di setiap platform, itu akan terlihat seperti yang diharapkan pengguna.sumber
DIPERBARUI 2019:
Menggabungkan ide-ide dari halaman ini menjadi solusi "atur dan lupakan".
input:disabled, textarea:disabled, input:disabled::placeholder, textarea:disabled::placeholder { -webkit-text-fill-color: currentcolor; /* 1. sets text fill to current `color` for safari */ opacity: 1; /* 2. correct opacity on iOS */ }
sumber
Anda dapat menggunakan atribut readonly alih-alih atribut disabled, tetapi kemudian Anda perlu menambahkan kelas karena tidak ada pseudo-class input: readonly.
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <style type="text/css"> button.readonly{ border:solid 1px #880000; background-color:#ffffff; color:#880000; } </style> </head> <body> <form action=""> <button type="button" readonly="readonly" class="readonly">disabled input box</button> </form> </body> </html>
Berhati-hatilah karena input yang dinonaktifkan dan input hanya-baca tidak sama. Masukan hanya-baca dapat memiliki fokus, dan akan mengirimkan nilai saat dikirim. Lihat w3.org
sumber
untuk @ryan
Saya ingin kotak masukan saya yang dinonaktifkan terlihat seperti yang biasa. Ini adalah satu-satunya hal yang akan berfungsi di Safari Mobile.
-webkit-text-fill-color: rgba(0, 0, 0, 1); -webkit-opacity: 1; background: white;
sumber
Jika Anda ingin memperbaiki masalah untuk semua input yang dinonaktifkan, Anda dapat menentukan
-webkit-text-fill-color
kecurrentcolor
, sehinggacolor
properti input akan digunakan.input[disabled] { -webkit-text-fill-color: currentcolor; }
Lihat biola itu di Safari https://jsfiddle.net/u549yk87/3/
sumber
Pertanyaan ini sudah sangat lama tetapi saya pikir saya akan memposting solusi webkit yang diperbarui. Cukup gunakan CSS berikut:
input::-webkit-input-placeholder { color: #880000; }
sumber
-webkit-text-fill-color
) memang berhasilBisakah Anda menggunakan tombol sebagai ganti input?
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <style type="text/css"> button:disabled{ border:solid 1px #880000; background-color:#ffffff; color:#880000; } </style> </head> <body> <form action=""> <button type="button" disabled="disabled">disabled input box</button> </form> </body> </html>
sumber