Saya sedang bersenang-senang mencoba untuk mencapai ini. Saya tidak ingin menggunakan solusi Flash, dan tidak ada perpustakaan jQuery yang saya lihat dapat diandalkan di semua browser.
Saya datang dengan solusi saya sendiri, yang diimplementasikan sepenuhnya dalam CSS (kecuali untuk perubahan gaya onclick untuk membuat tombol muncul 'diklik').
Anda dapat mencoba contoh yang berfungsi di sini: http://jsfiddle.net/VQJ9V/307/ (Diuji dalam FF 7, IE 9, Safari 5, Opera 11 dan Chrome 14)
Ini bekerja dengan membuat input file besar (dengan ukuran font: 50px), kemudian membungkusnya dalam div yang memiliki ukuran tetap dan melimpah: disembunyikan. Input kemudian hanya terlihat melalui "jendela" div ini. Div dapat diberi gambar atau warna latar belakang, teks dapat ditambahkan, dan input dapat dibuat transparan untuk mengungkapkan latar belakang div:
HTML:
<div class="inputWrapper">
<input class="fileInput" type="file" name="file1"/>
</div>
CSS:
.inputWrapper {
height: 32px;
width: 64px;
overflow: hidden;
position: relative;
cursor: pointer;
/*Using a background color, but you can use a background image to represent a button*/
background-color: #DDF;
}
.fileInput {
cursor: pointer;
height: 100%;
position:absolute;
top: 0;
right: 0;
z-index: 99;
/*This makes the button huge. If you want a bigger button, increase the font size*/
font-size:50px;
/*Opacity settings for all browsers*/
opacity: 0;
-moz-opacity: 0;
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0)
}
Beri tahu saya jika ada masalah dan saya akan coba memperbaikinya.