Как лучше всего заменить кнопку просмотра файла в html?

Я знаю, что можно заменить кнопку просмотра, которая создается в html, когда вы используете тег input с type = "file.

Я не уверен, что это лучший способ, поэтому, если у кого-то есть опыт в этом, пожалуйста, внесите свой вклад.

Улучшение производительности загрузки с помощью 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 страниц, которые помогут...
18
0
22 395
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Лучший способ - сделать невидимым элемент управления вводом файла почти (придав ему очень низкую непрозрачность - не используйте «видимость: скрыто» или «дисплей: нет») и абсолютно расположить что-либо под ним - с меньшим значением z-индекс.

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

Эта статья подробно описывает технику.

Это кажется таким хакерским, что жаль, что нет лучшего пути (тм).

TM. 15.01.2009 23:22

Это технически невозможно в целях безопасности, поэтому пользователя нельзя ввести в заблуждение.

Однако есть несколько обходных путей - взгляните на http://www.quirksmode.org/dom/inputfile.html для одного примера.

Для записи, этот вопрос уже задавался здесь (где я дал такой же ответ).

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

Например:

<input type = "file" id = "fileInput">
<img src = "...">
#fileInput{
    position: absolute;
    opacity: 0;
    -moz-opacity: 0;
    filter: alpha(opacity=0);
}

Если вы не против использования javascript, вы можете установить непрозрачность ввода файла равным 0, разместить свой стилизованный элемент управления сверху через z-index и отправлять события кликов с вашей кнопки на ввод файла. См. Методику здесь: http://www.quirksmode.org/dom/inputfile.html

Для этого также можно использовать программу загрузки Flash, например SWFupload.

@Chensformers Спасибо, что натолкнули этим восьмилетнюю ветку, я полагаю?

ceejayoz 23.08.2016 17:16

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