Почему для загрузки Twitter'а нет красивой кнопки загрузки элемента? Было бы хорошо, если бы для кнопки загрузки была реализована синяя основная кнопка. Можно ли даже отточить кнопку загрузки с помощью CSS? (похоже на нативный элемент браузера, которым нельзя манипулировать)
css
forms
twitter-bootstrap
input-type-file
jkushner
источник
источник
Ответы:
Вот решение для Bootstrap 3 и 4.
Чтобы сделать функциональный элемент управления вводом файлов, который выглядит как кнопка, вам нужен только HTML:
HTML
Это работает во всех современных браузерах, включая IE9 +. Если вам также нужна поддержка старого IE, используйте устаревший подход, показанный ниже.
Эта техника опирается на
hidden
атрибут HTML5 . Bootstrap 4 использует следующий CSS для упрощения этой функции в неподдерживаемых браузерах. Возможно, вам придется добавить, если вы используете Bootstrap 3.Устаревший подход для старого IE
Если вам нужна поддержка IE8 и ниже, используйте следующий HTML / CSS:
HTML
CSS
Обратите внимание, что старый IE не запускает ввод файла, когда вы нажимаете на
<label>
, поэтому CSS «раздувание» делает несколько вещей, чтобы обойти это:<span>
Обратная связь и дополнительное чтение
Я опубликовал более подробную информацию об этом методе, а также примеры того, как показать пользователю, какие / сколько файлов выбраны:
http://www.abeautifulsite.net/whipping-file-inputs-into-shape-with-bootstrap-3/
источник
<label>
элемент. Как лучшее решение :)Я удивлен, что не было никакого упоминания об
<label>
элементе.Решение:
Нет необходимости в JS или в стиле фанк CSS ...
Решение для включения имени файла:
Решение выше требует jQuery.
источник
for
если вы оборачиваете целевой элемент с меткой.Без дополнительного плагина это загрузочное решение отлично работает для меня:
демо:
http://jsfiddle.net/haisumbhatti/cAXFA/1/ (начальная загрузка 2)
http://jsfiddle.net/haisumbhatti/y3xyU/ (начальная загрузка 3)
источник
Это включено в форк начальной загрузки Jasny's.
Простая кнопка загрузки может быть создана с помощью
С помощью плагина fileupload вы можете создавать более сложные виджеты. Посмотрите на http://jasny.github.io/bootstrap/javascript/#fileinput
источник
Кнопки загрузки - это боль в стиле, потому что они стилируют ввод, а не кнопку.
но вы можете использовать этот трюк:
http://www.quirksmode.org/dom/inputfile.html
Резюме:
Возьми нормаль
<input type="file">
и поставь в элемент сposition: relative
.К этому же родительскому элементу добавьте нормаль
<input>
и изображение, которые имеют правильные стили. Расположите эти элементы абсолютно так, чтобы они занимали то же место, что и<input type="file">
.Установите z-index
<input type="file">
для 2 так, чтобы он лежал поверх стилизованного ввода / изображения.Наконец, установите непрозрачность
<input type="file">
для 0.<input type="file">
Теперь он становится практически невидимым, и стили ввода / изображения просвечивают, но вы все равно можете нажать на кнопку «Обзор». Если кнопка расположена в верхней части изображения, пользователь, кажется, нажимает на изображение и получает обычное окно выбора файла. (Обратите внимание, что вы не можете использовать видимость: скрытый, потому что действительно невидимый элемент тоже нельзя кликнуть, и нам нужно, чтобы он оставался кликабельным)источник
Работает для меня:
Обновить
Стиль плагина jQuery :
источник
Упрощенный ответ с использованием деталей из других ответов, в первую очередь user2309766 и dotcomsuperstar.
Особенности:
split
для удаления пути к файлу используются регулярные выражения и разделители '\' и '/'.Код:
источник
С некоторым вдохновением из других постов выше, вот полное решение, которое сочетает в себе то, что выглядит как поле управления формой, с надстройкой группы ввода для чистого виджета ввода файла, который включает ссылку на текущий файл.
источник
Это прекрасно работает для меня
источник
Пожалуйста, проверьте Twitter Bootstrap File Input . Он использует очень простое решение, просто добавьте один файл javascript и вставьте следующий код:
источник
Простое решение с приемлемым результатом:
И стиль:
источник
Решение для множественной загрузки
Я подправил два предыдущих ответа, чтобы включить несколько загрузок. Таким образом, метка показывает имя файла, если выбран только один, или
x files
в обратном случае.Это может также применяться для изменения текста кнопки и класса.
источник
Я создал пользовательскую кнопку загрузки, чтобы принимать только изображения, которые могут быть изменены в соответствии с вашими требованиями.
Надеюсь это поможет!! :)
(Используется Bootstrap framework)
Codepen-ссылка
HTML
CSS
JS
источник
это лучший стиль загрузки файлов, который мне нравится:
Вы можете получить демо и другие стили на:
http://www.jasny.net/bootstrap/javascript/#fileinput
но, используя это, вы должны заменить Twitter bootstrap файлами jasny bootstrap.
С уважением.
источник
Основан на абсолютно блестящем решении @claviska, которому все заслуги.
Полнофункциональный ввод файла Bootstrap 4 с проверкой и текстом справки.
Основываясь на примере группы ввода, мы имеем фиктивное поле ввода текста, используемое для отображения имени файла пользователю, которое заполняется
onchange
событием в поле фактического файла ввода, скрытом за кнопкой метки. Помимо включения поддержки проверки bootstrap 4, мы также дали возможность щелкнуть в любом месте ввода, чтобы открыть диалоговое окно файла.Три состояния ввода файла
Три возможных состояния не подтверждены, действительны и недействительны с установленным атрибутом фиктивного тега ввода HTML
required
.HTML-разметка для ввода
Введу только 2 пользовательских классы
input-file-dummy
иinput-file-btn
к надлежащему стилю и проволоке желаемого поведения. Все остальное - стандартная разметка Bootstrap 4.JavaScript поведенческие положения
Фиктивный ввод должен быть только для чтения, в соответствии с исходным примером, чтобы пользователь не мог изменить ввод, который может быть изменен только через диалог открытия файла. К сожалению, проверка не выполняется в
readonly
полях, поэтому мы переключаем редактируемость ввода для фокуса и размытия ( события jqueryonfocusin
иonfocusout
) и гарантируем, что он снова станет доступным для проверки после выбора файла.Кроме того, чтобы сделать текстовое поле кликабельным, запуская событие нажатия кнопки, остальная функциональность заполнения фиктивного поля была предусмотрена @claviska.
Индивидуальные настройки
Самое главное, мы не хотим, чтобы
readonly
поле переходило между серым фоном и белым, поэтому мы гарантируем, что оно остается белым. У кнопки span нет курсора-указателя, но мы все равно должны добавить его для ввода.NJoy!
источник
Я использую http://gregpike.net/demos/bootstrap-file-input/demo.html :
или
источник
/ * * Boosttrap 3 filestyle * http://dev.tudosobreweb.com.br/bootstrap-filestyle/ * * Авторские права (c) 2013 Маркус Винисиус да Сильва Лима * Обновление начальной загрузки 3 Пауло Энрике Фоксера * Версия 2.0.0 * Лицензировано под лицензией MIT. * * /
источник
Я изменил ответ @claviska и работает так, как мне нравится (Bootstrap 3, 4 не тестировался):
источник
Следующий код делает как на картинке выше
Html
Javascript
источник
У меня та же проблема, и я пытаюсь это так.
CSS
JS
Надеюсь, вы нашли лучшее решение ...
источник
Попробуйте следовать в Bootstrap v.3.3.4
источник
Вот альтернативный трюк, это не лучшее решение, но оно просто дает вам выбор
HTML код:
Javascript:
источник
В отношении клависного ответа - если вы хотите показать загруженное имя файла в базовой загрузке файла, вы можете сделать это в
onchange
событии входов . Просто используйте этот код:Этот код JSquery JS отвечает за получение имени загруженного файла:
Или с ванильным JS:
источник
Я думал, что я добавлю свою тройную стоимость, просто чтобы сказать, как по умолчанию
.custom-file-label
иcustom-file-input
вводить файл BS4 и как это можно использовать.Последний класс находится в группе ввода и не виден. В то время как первый является видимым ярлыком и имеет псевдоэлемент: after, который выглядит как кнопка.
Вы не можете добавлять классы в psuedoelements, но вы можете стилизовать их в CSS (или SASS).
источник
Не нужно модных шизов:
HTML:
JS:
ВНИМАНИЕ: Три рассматриваемых элемента формы ДОЛЖНЫ быть родственными элементами друг друга (.image-file-selected, .image-file-button, .image-file)
источник
http://markusslima.github.io/bootstrap-filestyle/
ИЛИ
источник