Установка единой ширины <input type = "file"> во всех браузерах

Какая комбинация CSS или атрибутов необходима?

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
37
0
87 590
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий
  • Скрыть фактический контроль
  • Сделал DIV с элементами управления и стилями, которые вам нужны.

Кнопка не является стандартным элементом управления HTML.

См .: http://www.quirksmode.org/dom/inputfile.html

так что нет возможности добиться этого с помощью самого встроенного элемента управления?

Larsenal 06.11.2008 21:25

Абсолютно нет необходимости использовать непрозрачность - вы можете просто делегировать щелчок по дисплею: ​​ни один элемент - намного проще, и вам не нужно учитывать (варьирующийся) размер ввода.

Morg. 18.04.2012 18:13

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

nebulousGirl 24.09.2012 23:41

Что случилось с

<input type = "file" size = "50" .... />

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

input-width ничего не делает. Возможно, вы думаете о input-size, который меняет ширину, но не в единицах, которые вы можете стандартизировать для разных браузеров.

bobince 05.02.2009 16:25

Это работает ... он обрабатывает firefox ... в то время как ширина CSS обрабатывает Chrome, IE и Safari

user656925 11.11.2011 09:31

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

Sam Watkins 13.04.2012 11:49

W3C не может проверить атрибут size, потому что он разрешен только для полей типа text, search, url, tel, e-mail, or password.

Alex G 24.12.2012 19:07

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

user1299518 05.05.2013 06:31

В дополнение к учебнику quirksmode, вот еще один хороший ресурс: http://www.shauninman.com/archive/2007/09/10/styling_file_inputs_with_css_and_the_dom

Если вы скрываете фактический элемент управления, помните, что очень важно установить непрозрачность элемента управления на ноль, а не использовать visibility: hidden. Это фактически скроет элемент, отключив действие щелчка.

Кроме того, если вы закрываете элемент управления графической кнопкой, имейте в виду, что в некоторых браузерах (я полагаю, в Firefox и IE) вы не сможете изменить тип курсора на руку, когда он находится над текстом - входная часть файлового элемента управления (всегда по умолчанию используется входной или обычный указатель без ссылки). И да, я пробовал использовать cursor: pointercursor: hand).

Лично я боролся с настраиваемыми окнами загрузки, и нет серебряной пули для улучшения их внешнего вида или настройки. (особенно в отношении поведения курсора, поскольку я считаю, что пользовательский интерфейс нарушает правила). В конце концов, я думаю, что проще согласиться с тем, что разные браузеры будут отображать элемент управления по-разному, и именно так оно и есть.

Другие вопросы по теме