Итак, очень простой чистый CSS способ создания вашего собственного входного файла.
Используйте ярлыки, но, как вы знаете из предыдущих ответов, ярлык не вызывает функцию onclick в Firefox, может быть ошибкой, но это не имеет значения при следующем.
<label for="file" class="custom-file-input"><input type="file" name="file" class="custom-file-input"></input></label>
То, что вы делаете, это стиль этикетки, чтобы выглядеть так, как вы хотите
.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%;
}
Теперь просто скрыть фактическую кнопку ввода, но вы не можете установить ее на visability: hidden
Так сделайте в невидимом, установив opacity: 0;
input.custom-file-input {
opacity: 0;
position: absolute;/*set position to be exactly over your input*/
left: 0;
top: 0;
}
теперь, как вы могли заметить, у меня есть тот же класс на моем ярлыке, что и у моего поля ввода, потому что я хочу, чтобы у обоих был один и тот же стиль, поэтому, когда вы нажимаете на ярлык, вы фактически нажимаете на невидимое поле ввода.