Настраиваемое оформление элемента <input type=file>
явно не рекомендуется.
Во-первых, его внешний вид по умолчанию совершенно различен в разных браузерах (вы не упомянули Safari, который также отображает его совершенно по-другому, чем другие браузеры). Уже одно это сделало бы его довольно стильным.
Но, что более важно, большинство браузеров активно препятствуют работе ряда стандартных действий CSS и Javascript с элементами file
из-за потенциальных проблем безопасности.
Некоторый Javascript запрещен, чтобы вредоносные скрипты не могли перехватить или изменить имя файла и путь. Последствия того, что могло бы произойти, если бы это было разрешено, довольно очевидны.
Кроме того, элемент, как правило, допускает лишь минимальное количество стилей с использованием CSS. Это связано с тем, что вредоносные страницы стилизовали элемент, чтобы он не выглядел как элемент файла, и тем самым вынуждали пользователей загружать файлы, которые они не должны были загружать.
Эта страница предоставляет дополнительные сведения по этому вопросу и дает советы по ее успешному оформлению.
Надеюсь, это поможет.