Можно ли изменить внешний вид <input type="file">
?
html
css
file-upload
input
Новичок кодер
источник
источник
Ответы:
Вы не можете изменить многое о самом
input[type=file]
элементе управления.Поскольку щелчок по
label
элементу, правильно сопряженному с вводом, активирует / фокусирует его, мы можем использовать a,label
чтобы вызвать диалоговое окно обзора ОС.Вот как вы можете это сделать ...
CSS для элемента управления формы сделает его невидимым и не займет место в макете документа, но все равно будет существовать, поэтому его можно активировать с помощью
label
.Если вы хотите отобразить выбранный пользователем путь после выбора, вы можете прослушать
change
событие с помощью JavaScript, а затем прочитать путь, который браузер делает доступным для вас (по соображениям безопасности он может лгать вам о точном пути). Чтобы сделать его привлекательным для конечного пользователя, просто используйте базовое имя возвращаемого пути (чтобы пользователь просто увидел выбранное имя файла).Существует прекрасное руководство от Tympanus по его оформлению.
источник
#container { position: relative; width: ...px; height: ...px; overflow: hidden; } #input { position: absolute; right: 0; font-size: <many a>px; opacity: 0; margin: 0; padding: 0; border: none; }
<label>
(как показано Tympanus) гораздо более семантическое и менее хакерское. Кроме того, этот вопрос был снова задан несколько лет спустя, и ответы на него были гораздо лучше: кросс-браузерная стилизация для кнопки загрузки файла .Может быть, что-то подобное?
источник
display: none
удалит ввод из последовательности вкладок, делая страницу менее доступной. Использование<label>
(как показано Tympanus) гораздо более семантическое и менее хакерское. Кроме того, этот вопрос был снова задан несколько лет спустя, и ответы на него были гораздо лучше: кросс-браузерная стилизация для кнопки загрузки файла .почему нет? ^ _ ^
Смотрите пример здесь
источник
<label>
(как показано Tympanus) является семантически правильным решением. Кроме того, этот вопрос был снова задан несколько лет спустя, и ответы на него были гораздо лучше: кросс-браузерная стилизация для кнопки загрузки файла .Если вы используете загрузчик, вот лучшее решение:
Для IE8 и ниже http://www.abeautifulsite.net/whipping-file-inputs-into-shape-with-bootstrap-3/
Источник: https://stackoverflow.com/a/18164555/625952
источник
Самый простой способ..
источник
В webkit вы можете попробовать это ...
источник
прежде всего это контейнер:
Во-вторых, это стиль CSS, если вы хотите больше настраивать, просто держать глаза открытыми :)
Этот пример не имеет стиля для текста внутри кнопки, он зависит от размера шрифта, просто исправьте значения высоты и отступа для контейнера
источник
right: 0
вместоleft: 0
? Таким образом, вы получите текстовое поле ie из контейнера. При нажатии на текстовое поле не открывается диалог выбора файла. Кроме того, я считаю, что сделать входной файл большимfont-size
- гораздо лучшая идея, чем использоватьwidth
иheight
.Хитрость заключается в том, чтобы скрыть ввод и настроить метку.
HTML:
CSS:
JS:
Вы можете проверить этот пример: https://jsfiddle.net/rjurado/hnf0zhy1/4/
источник
Намного лучше, если вы просто используете
<label>
, скрываете<input>
и настраиваете метку.HTML:
CSS:
источник
display: none
удалит элемент из табуляции. Использование<label>
(как показано Tympanus) является семантически правильным способом, но требует некоторых уточнений. Кроме того, этот вопрос был снова задан несколько лет спустя, и ответы на него были гораздо лучше: кросс-браузерная стилизация для кнопки загрузки файла .чтобы показать путь к выбранному файлу, вы можете попробовать это на HTML:
и в JavaScript:
и стиль:
источник
Пример начальной загрузки
источник
Я выбрал эту опцию, которая поясняет, как полностью настроить кнопку просмотра, включая обработчик имени загруженного файла, также настроенный. Он добавляет дополнительные поля и клиентские элементы управления для них, чтобы показать, как включить просмотр в «реальной» форме, а не просто в автономном режиме.
Вот кодекс: http://codepen.io/emiemi/pen/zxNXWR
JS:
HTML:
источник
Вот один способ, который мне нравится, потому что он заставляет вход заполнять весь контейнер. Трюк "font-size: 100px", и он должен идти с "overflow: hidden" и относительной позицией.
источник
position: absolute; right: 0; font-size: <many>px;
Вы можете стилизовать их, но вы не можете удалить элементы, которые уже есть. Если вы креативны, вы можете работать с этим и делать что-то вроде этого:
http://jsfiddle.net/zr1x1m2b/1/
Я предлагаю вам поиграть с этим кодом, удалить строки, добавить свои собственные, делать что угодно, пока не получите то, что выглядит так, как вам нравится!
источник
<label>
(как показано Tympanus) является семантическим и предлагает полную настраиваемость. Кроме того, этот вопрос был снова задан несколько лет спустя, и ответы на него были гораздо лучше: кросс-браузерная стилизация для кнопки загрузки файла .Просто нарисуйте обычную кнопку, как вы хотите, используя свой любимый CSS.
Затем вызовите простую функцию JS, чтобы создать и связать скрытый элемент ввода с вашей стилизованной кнопкой. Не добавляйте браузерный CSS для скрытия.
Обратите внимание, как приведенный выше код пересылает его после каждого выбора пользователем файла. Это важно, потому что «onchange» вызывается только если пользователь меняет имя файла. Но вы, вероятно, хотите получить файл каждый раз, когда пользователь предоставляет его.
Для получения более подробной информации изучите DropZone и Gmail.
источник
Это моя полнофункциональная загрузка / вложение файла с использованием jquery & javascript (Visual studio). Это будет полезно!
Код будет доступен в разделе комментариев!
Ссылка: https://youtu.be/It38OzMAeig
Наслаждаться :)
источник
Вот быстрый обходной путь на чистом CSS (работает на Chrome и включает запасной вариант FireFox), включая имя файла, метку и пользовательскую кнопку загрузки, и делает то, что должен - вообще не нужен JavaScript! 🎉
Примечание: ☝ Это работает в Chrome и имеет запасной вариант FireFox - в любом случае, я бы не стал использовать его на веб-сайте реального мира - если для вас важна совместимость браузера (какой она должна быть). Так что это скорее экспериментально.
источник
Вот один способ, который я недавно обнаружил, с небольшим количеством jQuery
HTML-код:
Для части javascript / jQuery:
В этом примере я поместил тег «якорь» для запуска загрузки файла. Вы можете заменить на что угодно, просто не забудьте поставить атрибут «onclick» с соответствующей функцией.
Надеюсь это поможет!
PS: не забудьте включить jQuery из CDN или любого другого источника
источник
display: none
удалит ввод из последовательности вкладок. Использование<label>
(как показано Tympanus) гораздо более семантическое и менее хакерское. Кроме того, этот вопрос был снова задан несколько лет спустя, и ответы на него были гораздо лучше: кросс-браузерная стилизация для кнопки загрузки файла .