Apakah ada cara dengan CSS untuk menargetkan semua input berdasarkan tipenya? Saya memiliki kelas yang dinonaktifkan yang saya gunakan pada berbagai elemen formulir yang dinonaktifkan, dan saya menyetel warna latar belakang untuk kotak teks, tetapi saya tidak ingin kotak centang saya mendapatkan warna itu.
Saya tahu saya bisa melakukan ini dengan kelas terpisah tetapi saya lebih suka menggunakan CSS jika memungkinkan. Saya yakin, saya dapat mengatur ini dalam javascript tetapi sekali lagi mencari CSS.
Saya menargetkan IE7 +. Jadi saya rasa saya tidak bisa menggunakan CSS3.
Edit
Dengan CSS3 saya bisa melakukan sesuatu seperti?
INPUT[type='text']:disabled
itu akan lebih baik menyingkirkan kelasku sama sekali ...
Edit
Ok, terima kasih bantuannya! Jadi, inilah pemilih yang memodifikasi semua kotak teks dan area yang telah dinonaktifkan tanpa memerlukan pengaturan kelas apa pun, ketika saya memulai pertanyaan ini, saya tidak pernah berpikir ini mungkin ...
INPUT[disabled][type='text'], TEXTAREA[disabled]
{
background-color: Silver;
}
Ini berfungsi di IE7
sumber
Jawaban:
Iya. IE7 + mendukung pemilih atribut:
Input elemen dengan tipe atribut yang berisi nilai sama dengan, dimulai dengan, berisi, atau diakhiri dengan nilai tertentu.
Penyeleksi aman (IE7 +) lainnya adalah:
p > span { font-weight: bold; }
span ~ span { color: blue; }
Yang
<p><span/><span/></p>
mana secara efektif akan memberi Anda:Bacaan lebih lanjut: Kompatibilitas CSS browser di quirksmode.com
Saya terkejut bahwa semua orang berpikir itu tidak bisa dilakukan. Pemilih atribut CSS telah berada di sini selama beberapa waktu. Saya kira sudah waktunya kita membersihkan file .css kita.
sumber
Sayangnya poster lain benar bahwa Anda... benar-benar seperti yang dikoreksi oleh Kron, Anda ok dengan IE7 Anda dan doc yang ketat, tetapi kebanyakan dari kita dengan persyaratan IE6 dikurangi untuk JS atau referensi kelas untuk ini, tetapi adalah properti CSS2, hanya satu tanpa dukungan yang memadai dari browser IE ^ h ^ h.Dari kelengkapan, pemilih jenis - mirip dengan xpath - bentuk
[attribute=value]
tetapi ada banyak varian menarik. Ini akan menjadi sangat kuat bila tersedia, hal yang baik untuk diingat untuk IE8.referensi w3
referensi dukungan browser
sumber
Anda dapat melakukan ini dengan jQuery. Dengan menggunakan penyeleksi mereka, Anda dapat memilih berdasarkan atribut, seperti tipe. Namun, ini mengharuskan pengguna Anda mengaktifkan Javascript, dan file tambahan untuk diunduh, tetapi jika berfungsi ...
sumber
Maaf, jawaban singkatnya adalah tidak. CSS (2.1) hanya akan menandai elemen DOM, bukan atributnya. Anda harus menerapkan kelas tertentu untuk setiap masukan.
Sialan saya tahu, karena itu akan sangat berguna.
Saya tahu Anda telah mengatakan Anda lebih suka CSS daripada JavaScript, tetapi Anda masih harus mempertimbangkan untuk menggunakan jQuery. Ini menyediakan cara yang sangat bersih dan elegan untuk menambahkan gaya ke elemen DOM berdasarkan atribut.
sumber