Стиль поля загрузки файла HTML - PullRequest
5 голосов
/ 16 февраля 2010

Я пытаюсь создать поле для загрузки файла, которое имеет немного стиля, но у меня, похоже, возникают проблемы с поиском примеров этого. Я знаю, что отчасти причина в том, что само поле варьируется от браузера к браузеру.

Есть идеи, как это сделать? Или есть способ сделать это без использования элемента файла формы, который можно стилизовать?

Ответы [ 5 ]

4 голосов
/ 16 февраля 2010

Если вы имеете в виду текстовое поле для имен файлов, вы можете использовать селектор input [type = file] в файлах css. Например:

input[type=file] { background-color: red; }

Если вы имеете в виду диалоговое окно выбора файла, я думаю, что оно зависит от браузера / ОС, и вы мало что можете с этим поделать.

3 голосов
/ 16 февраля 2010

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

Вы можете заставить некоторые работатьиспользуя, например, метод Фуруно, но знайте, что его поведение будет нестабильным и будет значительно отличаться для разных платформ / браузеров.

2 голосов
/ 16 февраля 2010
0 голосов
/ 08 июня 2016

Если вы используете jQuery, взгляните на этот плагин - https://github.com/ajaxray/bootstrap-file-field

Этот крошечный плагин будет отображать поле ввода файла в виде кнопки начальной загрузки (с настраиваемыми классами) и красиво отображать выбранные имена файлов (или ошибки выбора).

Кроме того, вы можете установить различные ограничения, используя простые атрибуты данных или настройки JS.
e, g, data-file-types="image/jpeg,image/png" ограничит выбор типов файлов, кроме изображений jpg и png.

0 голосов
/ 17 марта 2014

Это подходит для вашего требования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...