Вы не можете сильно изменить сам элемент управления input[type=file]
.
Поскольку щелчок по элементу label
, правильно сопряженному с входом, активирует / фокусирует его, мы можем использовать label
для запускадиалог просмотра ОС.
Вот как вы можете это сделать ...
label {
cursor: pointer;
/* Style as you please, it will become the visible UI component. */
}
#upload-photo {
opacity: 0;
position: absolute;
z-index: -1;
}
<label for="upload-photo">Browse...</label>
<input type="file" name="photo" id="upload-photo" />
CSS для элемента управления формы сделает его невидимым и не займет место в макете документа, но все равно будет существовать , поэтомуего можно активировать с помощью label
.
. Если вы хотите отобразить выбранный пользователем путь после выбора, вы можете прослушать событие change
с помощью JavaScript, а затем прочитать путь, который браузер делает доступным длявы (по соображениям безопасности он может лгать вам о точном пути).Чтобы сделать его привлекательным для конечного пользователя, просто используйте базовое имя возвращаемого пути (чтобы пользователь просто увидел выбранное имя файла).
Существует замечательное руководство от Tympanus для стилизации этого.