Pemilih CSS untuk bidang input teks?


Jawaban:


674
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: :notpseudo-class hanya didukung dimulai dengan IE9.


41
+1 untuk mengutip standar aktual daripada beberapa situs web tutorial
— Šime Vidas

7
Terima kasih. Saya perhatikan orang-orang mengutip hal pertama yang muncul di Google ... atau w3sekolah.
— Alin Purcaru

Ya, itu agak menyebalkan
— Šime Vidas

Apakah itu berfungsi di IE6? Untuk solusi lintas-browser saya cenderung lebih suka menambahkan kelas (.input-teks, .input-kirim, dll) itu menyebalkan untuk pengembangan html, tetapi itu membuat css dan javascript sedikit lebih baik.
— zzzzBov

1
@MubasharAhmad Saya telah memperbarui jawaban saya dan seperti yang Anda lihat ada solusi hanya jika Anda menargetkan browser di atas IE9.
— Alin Purcaru

37

Anda dapat menggunakan pemilih atribut di sini:

input[type="text"] {
    font-family: Arial, sans-serif;
}

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


Hati-hati, font-family generik yang benar adalah sans-serif, tidak san-serif.
— Volker E.

14

Saya biasanya menggunakan penyeleksi dalam stylesheet utama saya, kemudian membuat file .js (jquery) ie6 spesifik yang menambahkan kelas ke semua jenis input. Contoh:

$(document).ready(function(){
  $("input[type='text']").addClass('text');
)};

Dan kemudian hanya menduplikasi gaya saya di stylesheet khusus ie6 menggunakan kelas. Dengan begitu markup sebenarnya sedikit lebih bersih.


Itu sangat lambat
— Hidayt Rahman

8

Anda dapat menggunakan :textSelector untuk memilih semua input dengan jenis teks

Biola yang Bekerja

$(document).ready(function () {
    $(":text").css({    //or $("input:text")
        'background': 'green',
        'color':'#fff'
    });
});

:textadalah 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 berhasil IE6+.

$("[type=text]").css({  // or $("input[type=text]")
    'background': 'green',
    'color':'#fff'
});

CSS

[type=text] // or input[type=text] 
{
    background: green;
}

2

Saya memiliki bidang input tipe teks dalam bidang baris tabel. Saya menargetkannya dengan kode

.admin_table input[type=text]:focus
{
    background-color: #FEE5AC;
}

0

Seperti @Amir diposting di atas, cara terbaik saat ini - lintas-browser dan meninggalkan IE6 - adalah menggunakan

[type=text] {}

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 dengan input[type=text].

Dari segi kinerja, tidak ada dampak negatif sama sekali.

menormalkan v4.0.0 baru saja dirilis dengan menurunkan spesifisitas pemilih .


0

Dengan pemilih atribut, kami menargetkan teks jenis input dalam CSS

input[type=text] {
background:gold;
font-size:15px;
 }

0

masukan [ketik = teks]

Ini akan memilih semua jenis teks input di halaman web.


-1

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/

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.