Извините, чувак, ваш добрый SOL на этом.Тип ввода файла отличается от большинства.Каждый браузер реализует его по-своему, поэтому он никогда не будет выглядеть одинаково в нескольких браузерах.Кроме того, по соображениям безопасности вы не можете инициировать ввод файлов с помощью JavaScript, поэтому вы не можете сделать невидимый ввод файлов, с которым вы будете взаимодействовать через другие стандартные входы.Многие, прежде чем пытаться, все потерпели неудачу.Я провел дни, исследуя возможные альтернативы, когда у меня не было ничего лучшего, и все они столкнулись с проблемой безопасности.Jquery обеспечивает самое близкое, но все же требуется переключение браузера для одного из основных браузеров (не помню, какой из них у меня в голове).
Так что теперь, когда плохие новости исчезли,вот что ты можешь сделатьПоложите кнопку на экран и стилизуйте ее так, как вам нравитсяПоместите файл ввода на экране и, используя абсолютное позиционирование и более высокий z-индекс, поместите его прямо поверх вашей кнопки.Теперь сделайте его прозрачным (не отображайте ничего, а используя непрозрачность и фильтр: альфа-стили), теперь пользователь думает, что он взаимодействует с вашей стандартной кнопкой, но невидимый ввод файла над ней перехватывает щелчок.Будет закрытием, которое вы можете получить для файлового ввода, который ведет себя и выглядит одинаково во всех браузерах.