Как скрыть текстовое поле в Html File Upload
Мне интересно, как скрыть часть текстового поля стандартного тега загрузки HTML-тегов
например
<input type="file" name="somename" size="chars">
Это генерирует явно текстовое поле, а рядом с ним - кнопка обзора... Я хочу скрыть часть текстового поля, но держать кнопку.
Ответы
Ответ 1
Я бы рекомендовал скрывать все это и помещать отдельный объект кнопки, который при нажатии будет в конечном итоге нажатием кнопки просмотра ввода.
Вы можете сделать это с помощью CSS и javascript - проверить эту статью (на самом деле второй раз я использовал эту ссылку сегодня).
Ответ 2
Это, безусловно, будет работать, я использовал его в своих проектах. Надеюсь, это поможет:)
<input type="file" id="selectedFile" style="display: none;" />
<input type="button" value="Browse..." onclick="document.getElementById('selectedFile').click();" />
Ответ 3
Самый простой способ, который не упоминается ни в одном ответе, - использовать label
для input
.
<input type="file" name="myFile" id="myFile">
<label for="myFile">Choose your file</label>
input[type="file"] { display: none; }
Использование label
будет полезно, потому что нажатие на метку нажимает на вход.
Это будет работать, только если вход id
равен метке for
.
Ответ 4
Вы можете поместить изображение в качестве фона для кнопки.
Это сработало для меня некоторое время назад.
Ответ 5
Кнопка ввода file
очень сложна для стилизации и управления, главным образом по соображениям безопасности.
Если вам действительно нужно настроить свою кнопку загрузки, я рекомендую загрузчик на основе Flash, например SWFUpload или Uploadify, который позволяет вам использовать пользовательское изображение как кнопку, отображать индикатор выполнения и другие вещи.
Однако его основная философия отличается от простого встраивания элемента управления в форму. Процесс загрузки происходит отдельно. Убедитесь, что вы сначала проверьте, работает ли это для вас.
Ответ 6
input[type="file"] { outline: none; cursor: pointer; position: absolute; top:0; clip: rect(0 265px 22px 155px); } /* Hide input field */
@-moz-document url-prefix()
{
input[type="file"] { clip: rect(0, 265px, 22px, 125px); } /* Mozilla */
}
* > /**/ input[type="file"], x:-webkit-any-link { clip: rect(0, 86px, 22px, 0); } /* Webkit */
Это сделает то же самое без JavaScript, но требует абсолютного позиционирования для использования свойства clip
.
Ссылки
Ответ 7
DEMO
Чистый css и html
Фокус в том, чтобы использовать кнопку над кнопкой входного файла.
Кроме того, вы должны установить
filter: alpha(opacity=0);
во входной файл.
Ответ 8
Вы можете скрыть весь элемент и показать вместо него кнопку или ссылку. Это довольно просто.
<input type="file" name="file" id="fileupload" style="width:200px; display:none;" onchange="submitmyform();" />
<input type="button" value="Select an Image" onclick="$('#fileupload').click();" />
Элемент загрузки файла скрыт. Кнопка запустит событие клика и отобразит окно браузера файлов. При выборе файла происходит событие изменения, и он может отправить форму или вызвать функцию script.
Надеюсь, что это поможет...
Ответ 9
Если вы используете jQuery, посмотрите на этот плагин - https://github.com/ajaxray/bootstrap-file-field
Он отобразит поле ввода файла в качестве кнопки начальной загрузки и красиво отобразит выбранные имена файлов. Кроме того, вы можете установить различные ограничения, используя простые атрибуты данных или настройки в js.
e, g, data-file-types="image/jpeg,image/png"
будет ограничивать выбор типов файлов, кроме изображений jpg и png.
Ответ 10
Попробуйте добавить этот css к вашему входу
font-size: 0;