Seperti input type=file
kebanyakan orang, saya ingin menyesuaikan yang jelek , dan saya tahu itu tidak dapat dilakukan tanpa beberapa peretasan dan / atau javascript
. Tapi, masalahnya adalah dalam kasus saya tombol unggah file hanya untuk mengunggah gambar ( jpeg | jpg | png | gif ), jadi saya ingin tahu apakah saya bisa menggunakan gambar " clickable
" yang akan bertindak persis sebagai file jenis masukan ( tunjukkan kotak dialog, dan $ _FILE yang sama pada halaman yang dikirimkan).
Saya menemukan beberapa solusi di sini , dan yang ini juga menarik (tetapi tidak berfungsi di Chrome = /).
Apa yang kalian lakukan saat ingin menambahkan gaya ke tombol file? Jika Anda memiliki sudut pandang tentang itu, tekan saja tombol jawab;)
Jawaban:
Ini bekerja dengan sangat baik untuk saya:
Pada dasarnya atribut for pada label membuatnya sehingga mengklik label sama dengan mengklik input yang ditentukan .
Selain itu, properti display yang disetel ke none membuatnya sehingga input file tidak dirender sama sekali, menyembunyikannya dengan baik dan bersih.
Diuji di Chrome tetapi menurut web harus bekerja di semua browser utama. :)
EDIT: Menambahkan JSFiddle di sini: https://jsfiddle.net/c5s42vdz/
sumber
Sebenarnya itu bisa dilakukan dalam css murni dan itu cukup mudah ...
Kode HTML
Gaya CSS
Idenya adalah untuk menempatkan masukan secara mutlak di dalam label Anda. setel ukuran font masukan menjadi sesuatu yang besar, yang akan meningkatkan ukuran tombol "telusuri". Kemudian diperlukan beberapa percobaan dan kesalahan menggunakan properti kiri / atas negatif untuk menempatkan tombol jelajah masukan di belakang label Anda.
Saat memosisikan tombol, setel alfa ke 1. Setelah selesai, setel kembali ke 0 (agar Anda dapat melihat apa yang Anda lakukan!)
Pastikan Anda menguji di seluruh browser karena semuanya akan membuat tombol masukan berukuran sedikit berbeda.
sumber
Solusi hebat dengan @hardsetting, Tapi saya membuat beberapa perbaikan untuk membuatnya bekerja dengan Safari (5.1.7) di windows
Saya telah menggunakan
visibility: hidden, width:0
bukandisplay: none
untuk masalah safari dan ditambahkanpointer-events: none
dalamimg
tag untuk membuatnya bekerja jika jenis file input tag dalam tag FORM.Sepertinya berfungsi untuk saya di semua browser utama.
Semoga bisa membantu seseorang.
sumber
Saya akan menggunakan SWFUpload atau Uploadify . Mereka membutuhkan Flash tetapi melakukan semua yang Anda inginkan tanpa masalah.
Setiap
<input type="file">
solusi berbasis yang mencoba untuk memicu "open file" dialog dengan cara lain daripada mengklik pada kontrol yang sebenarnya bisa dihapus dari browser untuk alasan keamanan setiap saat. (Saya pikir dalam versi FF dan IE saat ini, tidak mungkin lagi untuk memicu acara itu secara terprogram.)sumber
Ini adalah metode saya jika saya mengerti maksud Anda
HTML
jQuery
sumber
sangat sederhana, Anda dapat mencoba ini:
sumber
Anda dapat meletakkan gambar sebagai gantinya, dan melakukannya seperti ini:
HTML:
JQuery:
PERHATIAN : Di IE9 dan IE10, jika Anda memicu onclick dalam input file melalui javascript, formulir akan ditandai sebagai 'berbahaya' dan tidak dapat disubmit dengan javascript, tidak yakin apakah dapat dikirimkan secara tradisional.
sumber
Masukan itu sendiri tersembunyi dengan visibilitas CSS: tersembunyi.
Kemudian Anda dapat memiliki elemen apa pun yang Anda inginkan - jangkar atau gambar .., ketika jangkar / gambar diklik, memicu klik pada bidang masukan tersembunyi - kotak dialog untuk memilih file akan muncul.
EDIT: Sebenarnya ini berfungsi di Chrome dan Safari, saya baru menyadari bahwa tidak demikian halnya di FF4Beta
sumber
Kode Kerja:
sembunyikan saja bagian input dan lakukan seperti ini.
sumber
JALANKAN SNIPPET atau Cukup salin kode di atas dan jalankan. Anda akan mendapatkan apa yang Anda inginkan. Sangat sederhana dan efektif tanpa javascript. Nikmati!!!
sumber
Saya memiliki banyak masalah dengan masukan yang tersembunyi dan tidak terlihat selama dekade terakhir, terkadang semuanya jauh lebih sederhana dari yang kita kira.
Saya memiliki sedikit keinginan dengan IE 5,6,7,8 dan 9 karena tidak mendukung opacity dan dengan demikian input file akan menutupi gambar unggahan namun kode css berikut telah menyelesaikan masalah.
Potongan berikut diuji pada chrome, IE 5,6,7,8,9,10 satu-satunya masalah di IE 5 adalah bahwa ia tidak mendukung margin otomatis.
Jalankan cuplikannya, cukup salin dan tempel CSS dan ubah ukuran HTML sesuka Anda.
sumber