Bagaimana cara menargetkan bidang input tipe 'teks' menggunakan penyeleksi CSS?
sumber
Bagaimana cara menargetkan bidang input tipe 'teks' menggunakan penyeleksi CSS?
input[type=text]
atau, untuk membatasi input teks di dalam formulir
form input[type=text]
atau, untuk membatasi lebih jauh ke bentuk tertentu, dengan asumsi itu memiliki id myForm
#myForm input[type=text]
Perhatikan: Ini tidak didukung oleh IE6, jadi jika Anda ingin mengembangkan untuk IE6 gunakan IE7.js (seperti yang disarankan Yi Jiang) atau mulai menambahkan kelas ke semua input teks Anda.
Referensi: http://www.w3.org/TR/CSS2/selector.html#attribute-selectors
Karena ditentukan bahwa nilai atribut default mungkin tidak selalu dapat dipilih dengan penyeleksi atribut, orang dapat mencoba untuk menutupi kasus-kasus markup lain yang input teksnya diberikan:
input:not([type]), // type attribute not present in markup
input[type=""], // type attribute present, but empty
input[type=text] // type is explicitly defined as 'text'
Tetap ini meninggalkan kasus ketika tipe didefinisikan, tetapi memiliki nilai yang tidak valid dan yang masih jatuh ke type = "text". Untuk mengatasinya kita bisa menggunakan pilih semua input yang bukan salah satu dari tipe yang dikenal lainnya
input:not([type=button]):not([type=password]):not([type=submit])...
Tetapi pemilih ini akan sangat konyol dan juga daftar jenis yang mungkin tumbuh dengan fitur baru yang ditambahkan ke HTML.
Perhatikan: :not
pseudo-class hanya didukung dimulai dengan IE9.
Anda dapat menggunakan pemilih atribut di sini:
Ini didukung di IE7 dan di atas. Anda dapat menggunakan IE7.js untuk menambahkan dukungan untuk ini jika Anda perlu mendukung IE6.
Lihat: http://reference.sitepoint.com/css/attributeselector untuk informasi lebih lanjut
sumber
sans-serif
, tidaksan-serif
.Saya biasanya menggunakan penyeleksi dalam stylesheet utama saya, kemudian membuat file .js (jquery) ie6 spesifik yang menambahkan kelas ke semua jenis input. Contoh:
Dan kemudian hanya menduplikasi gaya saya di stylesheet khusus ie6 menggunakan kelas. Dengan begitu markup sebenarnya sedikit lebih bersih.
sumber
Anda dapat menggunakan
:text
Selector untuk memilih semua input dengan jenis teksBiola yang Bekerja
:text
adalah ekstensi jQuery dan bukan bagian dari spesifikasi CSS, permintaan menggunakan: teks tidak dapat mengambil keuntungan dari peningkatan kinerja yang disediakan oleh metode DOM querySelectorAll () asli. Untuk kinerja yang lebih baik di browser modern, gunakan[type="text"]
saja. Ini akan berhasilIE6+
.CSS
sumber
Saya memiliki bidang input tipe teks dalam bidang baris tabel. Saya menargetkannya dengan kode
sumber
Seperti @Amir diposting di atas, cara terbaik saat ini - lintas-browser dan meninggalkan IE6 - adalah menggunakan
Tidak ada yang disebutkan spesifisitas CSS yang lebih rendah ( mengapa adalah bahwa penting ?) Sejauh ini,
[type=text]
fitur 0,0,1,0 bukan 0,0,1,1 denganinput[type=text]
.Dari segi kinerja, tidak ada dampak negatif sama sekali.
menormalkan v4.0.0 baru saja dirilis dengan menurunkan spesifisitas pemilih .
sumber
Dengan pemilih atribut, kami menargetkan teks jenis input dalam CSS
sumber
masukan [ketik = teks]
Ini akan memilih semua jenis teks input di halaman web.
sumber
Selektor atribut sering digunakan untuk input. Ini adalah daftar pemilih atribut:
[title] Semua elemen dengan atribut title dipilih.
[title = banana] Semua elemen yang memiliki nilai 'pisang' dari atribut title.
[title ~ = banana] Semua elemen yang mengandung 'pisang' dalam nilai atribut title.
[title | = banana] Semua elemen yang nilai atribut title dimulai dengan 'banana'.
[title ^ = banana] Semua elemen yang nilai atribut title dimulai dengan 'banana'.
[title $ = banana] Semua elemen yang nilai atribut title diakhiri dengan 'banana'.
[title * = banana] Semua elemen yang nilai atribut title berisi substring 'banana'.
Referensi: https://kolosek.com/css-selectors/
sumber