@IvanSokalskiy Itu dengan asumsi seseorang menggunakan Bootstrap. Tidak semua orang yang menemukan ini akan menggunakan Bootstrap!
Barry Michael Doyle
Jawaban:
392
Situs yang Anda tautkan menggunakan kombinasi trik CSS untuk melakukan ini. Pertama, ia menggunakan gambar latar belakang untuk <input>elemen. Kemudian, untuk mendorong kursor ke atas, ia menggunakan padding-left.
Dengan kata lain, mereka memiliki dua aturan CSS ini:
Bisakah Anda jelaskan lebih lanjut tentang parameter atas dan kiri (7px 7 px) dan atribut lainnya? Itu harus membantu.
QMaster
262
Saran: berhenti menggunakan dan mendukung IE 8.
a coder
3
bagaimana cara menyelaraskan gambar ke ujung kanan bidang input?
ishanbakshi
3
Masalah dengan gambar latar belakang adalah bahwa pengisian otomatis Chrome menghapus gambar latar belakang dan membuat latar belakang menjadi kuning sepenuhnya
Cătălin Rădoi
1
Untuk menyelaraskan ke penggunaan yang tepat: background-position: right;
raison
52
Solusi CSS yang diposting oleh orang lain adalah cara terbaik untuk mencapai ini.
Jika itu memberi Anda masalah (baca IE6), Anda juga dapat menggunakan input tanpa batas di dalam div.
tambahan yang bagus untuk jawaban ini. terkadang yaitu memberikan masalah dan ini adalah cara yang baik untuk menyelesaikan salah satunya. bekerja untuk saya walaupun dengan span sebagai gantinya.
Ross
Cara yang bagus untuk menambahkan struktur yang lebih kompleks di dalam input!
jonhue
@jonhue, saya tidak akan merekomendasikan ini kecuali Anda masih hidup di dekade sebelumnya dan perlu mendukung IE6. Meski begitu, saya tidak akan menyebutnya "bersih."
harpo
@harpo Bagaimana Anda memasukkan tautan ke dalam input?
Saya mendukung indentasi teks karena padding-kiri akan menambah lebar bidang dan akan keluar dari elemen induk.
Kostiantyn
1
mengapa Anda meletakkan style inline alih-alih di #icon css?
Wylliam Judd
@WylliamJudd Itu hanya untuk tujuan demonstrasi :)
Rust
mengapa Anda menggunakan id, bukan kelas?
majid savalanpour
9
Cara sederhana dan mudah untuk menempatkan Ikon di dalam input adalah dengan menggunakan properti posisi CSS seperti yang ditunjukkan dalam kode di bawah ini. Catatan: Saya telah menyederhanakan kode untuk tujuan kejelasan.
Buat wadah di sekitar input dan ikon.
Tetapkan posisi wadah sebagai relatif
Tetapkan ikon sebagai posisi absolut. Ini akan menempatkan ikon relatif terhadap wadah di sekitarnya.
Gunakan bagian atas, kiri, bawah, kanan untuk memposisikan ikon dalam wadah.
Atur padding di dalam input agar teks tidak tumpang tindih ikon.
Bersih dan sederhana, ya. Anda juga harus menghapus batas input dengan input { border: none; }dan menambahkan perbatasan #input-container { border: 1px solid #000; }agar terlihat seperti gambar di dalam dan sebenarnya bagian dari input.
Mario Werner
1
@MarioWerner dia mendorong gambar di dalam input, tidak perlu melakukan peretasan perbatasan, itulah keindahannya. Saya akan menggunakan ide itu.
input.valid {border-color:#28a745;padding-right:30px;background-image:url('https://www.stephenwadechryslerdodgejeep.com/wp-content/plugins/pm-motors-plugin/modules/vehicle_save/images/check.png');background-repeat: no-repeat;background-size:20px20px;background-position: right center;}
Saya punya situasi seperti ini. Itu tidak berhasil karena background: #ebebeb;. Saya ingin meletakkan latar belakang pada bidang input dan properti itu terus-menerus muncul di bagian atas gambar latar belakang, dan saya tidak bisa melihat gambar! Jadi, saya memindahkan backgroundproperti itu ke atas background-imageproperti itu dan berhasil.
Ini super tua dan saya harap mungkin Anda sudah belajar sejak lebih dari setahun yang lalu, tetapi backgroundadalah nama properti singkatan yang Anda gunakan untuk mencakup semua properti latar sekaligus:, background: [color] [image url] [repeat] [position]dan itulah sebabnya warna Anda menimpa segalanya. Anda juga bisa membiarkannya di tempat dan mengganti nama properti menjadibackground-color
borbulon
@borbulon ya Anda benar. itu hampir selalu terbaik untuk menggunakan nama properti steno, sepenuhnya setuju tentang itu. Tetapi tujuan dari posting ini adalah untuk menunjukkan bahwa urutan properti kadang-kadang penting, dan aturan-aturan CSS 'kecil' itu bisa membuat frustrasi, terutama bagi pendatang baru dalam pengembangan.
fantja
1
Sepenuhnya setuju, tetapi intinya masih berdiri: backgroundadalah nama properti singkatan. Perbaikan yang lebih baik adalah dengan tidak menggunakan steno, tetapi gunakan background-coloruntuk properti warna (dengan asumsi Anda menginginkan warna dan gambar).
Jawaban:
Situs yang Anda tautkan menggunakan kombinasi trik CSS untuk melakukan ini. Pertama, ia menggunakan gambar latar belakang untuk
<input>
elemen. Kemudian, untuk mendorong kursor ke atas, ia menggunakanpadding-left
.Dengan kata lain, mereka memiliki dua aturan CSS ini:
sumber
Solusi CSS yang diposting oleh orang lain adalah cara terbaik untuk mencapai ini.
Jika itu memberi Anda masalah (baca IE6), Anda juga dapat menggunakan input tanpa batas di dalam div.
Bukan sebagai "bersih", tetapi harus berfungsi pada peramban yang lebih lama.
sumber
Solusi tanpa gambar latar belakang:
sumber
Anda dapat mencoba ini:
sumber
Saya menemukan ini solusi terbaik dan terbersih untuk itu. Menggunakan indentasi teks pada
input
elemenCSS:
HTML:
sumber
Cara sederhana dan mudah untuk menempatkan Ikon di dalam input adalah dengan menggunakan properti posisi CSS seperti yang ditunjukkan dalam kode di bawah ini. Catatan: Saya telah menyederhanakan kode untuk tujuan kejelasan.
sumber
input { border: none; }
dan menambahkan perbatasan#input-container { border: 1px solid #000; }
agar terlihat seperti gambar di dalam dan sebenarnya bagian dari input.tambahkan tag di atas ke dalam file CSS Anda dan gunakan kelas yang ditentukan.
sumber
Ini bekerja untuk saya:
sumber
Anda Bisa Coba ini: Bootstrap-4 Beta
https://www.codeply.com/go/W25zyByhec
sumber
Cukup gunakan properti latar belakang di CSS Anda.
sumber
Saya punya situasi seperti ini. Itu tidak berhasil karena
background: #ebebeb;
. Saya ingin meletakkan latar belakang pada bidang input dan properti itu terus-menerus muncul di bagian atas gambar latar belakang, dan saya tidak bisa melihat gambar! Jadi, saya memindahkanbackground
properti itu ke atasbackground-image
properti itu dan berhasil.Solusi untuk kasus saya adalah:
Hanya untuk menyebutkan,
border
,padding
dantext-align
sifat-sifat yang tidak penting untuk solusi. Saya baru saja mereplikasi kode asli saya.sumber
background
adalah nama properti singkatan yang Anda gunakan untuk mencakup semua properti latar sekaligus:,background: [color] [image url] [repeat] [position]
dan itulah sebabnya warna Anda menimpa segalanya. Anda juga bisa membiarkannya di tempat dan mengganti nama properti menjadibackground-color
background
adalah nama properti singkatan. Perbaikan yang lebih baik adalah dengan tidak menggunakan steno, tetapi gunakanbackground-color
untuk properti warna (dengan asumsi Anda menginginkan warna dan gambar).Menggunakan dengan font-ikon
ATAU
sumber
Misalnya, Anda dapat menggunakan ini: label dengan input tersembunyi (ikon ada).
sumber
gunakan kelas css ini untuk input Anda di awal, lalu sesuaikan sesuai:
sumber
Ini berfungsi untuk saya untuk kurang lebih bentuk standar:
sumber