Ok jadi cara css murni sangat sederhana untuk membuat file input kustom Anda.
Gunakan label, tetapi seperti yang Anda tahu dari jawaban sebelumnya, label tidak memanggil fungsi onclick di firefox, mungkin bug tetapi tidak masalah dengan yang berikut ini.
<label for="file" class="custom-file-input"><input type="file" name="file" class="custom-file-input"></input></label>
Apa yang Anda lakukan adalah menata label untuk melihat seperti yang Anda inginkan
.custom-file-input {
color: transparent;/* This is to take away the browser text for file uploading*/
/* Carry on with the style you want */
background: url(../img/doc-o.png);
background-size: 100%;
position: absolute;
width: 200px;
height: 200px;
cursor: pointer;
top: 10%;
right: 15%;
}
sekarang cukup sembunyikan tombol input yang sebenarnya, tetapi Anda tidak dapat mengaturnya visability: hidden
Jadi buat tidak terlihat dengan pengaturan opacity: 0;
input.custom-file-input {
opacity: 0;
position: absolute;/*set position to be exactly over your input*/
left: 0;
top: 0;
}
sekarang karena Anda mungkin telah memperhatikan saya memiliki kelas yang sama pada label saya seperti yang saya lakukan bidang input saya, itu karena saya ingin keduanya memiliki gaya yang sama, jadi di mana pun Anda mengklik label, Anda sebenarnya mengklik yang tidak terlihat bidang input.