Я уже сталкивался с этой проблемой раньше.К сожалению, загрузки файлов практически невозможно согласовать в разных браузерах.Что касается CSS 2, я думаю, что стандарт W3C определенно оставляет поведение неопределенным - подумайте, сколько способов его нужно реализовать на разных платформах.Например, Firefox генерирует анонимные кнопки и элементы ввода внутри элемента загрузки файла, которые наследуют только некоторые свойства, заданные вами для самого элемента загрузки.
Вы можете заставить некоторые работатьиспользуя, например, метод Фуруно, но знайте, что его поведение будет нестабильным и будет значительно отличаться для разных платформ / браузеров.