Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
-webkit-appearance & -moz-appearance.display: none;), а вместо блоков под наименование и кнопку использовать соответствующие HTML-элементы. Собственно события onclick и onchange просто пробрасывать между полями скриптом (проброс — это например onclick="document.getElementById('elementId').click();"). В этом случае логичнее получается реализации элементов относительно типа, и отсутствуют полностью проблемы со стилями — CSS можно пользоваться в полной мере. Кстати JavaScript тогда сводится до пары коротких строчек полностью помещаемых в значения атрибутов onclick и onchange элементов полей.<input type="file" name="upload" id="upload_hidden" style="display: none;"
onchange="document.getElementById('upload_visible').value = this.value;" />
<input type="text" readonly="1" id="upload_visible"
onclick="document.getElementById('upload_hidden').click();" />
<button onclick="document.getElementById('upload_hidden').click();">Обзор</button>
display: none, то всегда найдутся способы скрыть его, пусть даже и чуть менее элегантно, но совершенно не нарушая общий принцип.<input type="file" name="upload" id="upload_hidden"
style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;"
onchange="document.getElementById('upload_visible').value = this.value;" />
<input type="text" readonly="1" id="upload_visible"
onclick="document.getElementById('upload_hidden').click();" />
<button onclick="document.getElementById('upload_hidden').click();">Обзор</button>
input[type="file"], этот способ не понравился тем, что: pointercursor: pointer на элементе, который не перезагружает страницу?pointer, или default, но никак не text.<button>, <input> по-умолчанию не случайно показывают default, а ссылки (кстати, можете проверить, без атрибута href <a> даже не подчёркивается) — не случайно pointer. Переопределяя курсор, вы ломаете устоявшуюся логику его поведения, пусть незначительно, но ухудшая восприятие интерфейса.href не подчеркиваются потому что, предполагается, они будут служить якорями (в моем понимании).input'ах. Ясное дело, что по дефолту они изменяют своё визуальное состояние при получении и утрате фокуса, но не изменяют состояние курсора. Добавим рядом с элементом input элемент a с ссылкой (назад например). Что получится: ссылка изменяет стиль курсора, а кнопка нет. Смотреться будет не лаконично и сбивать столку. disabled, Т.е. отключены. Но так же вспомним, что у кнопок может быть не стандартный стиль, а, например, стиль под серый сайт. Как мне понять, выключена ли кнопка или нет, если курсор при наведении не изменяется? А лучший — это интерфейс, который не требуется
Что получится: ссылка изменяет стиль курсора, а кнопка нет. Смотреться будет не лаконично и сбивать столку.




Утопия :)
Логично, что у двух разных элементов, с совершенно разным поведением, будет разное отображение, не правда ли?
я уверен, что большинство пользователей бы выбрали кнопку с идентификатором #3.
Что значит выбрали? Мы же не предлагаем пользователю нажать на любую понравившуюся кнопку.
На базе вашего же примера: какая из кнопок сохраняет данные без перезагрузки страницы?
Проще: сделали бы опрос.
Скорее всего первые 3, т.к. они как-то реагируют на изменение фокуса
Если первые 3 — то такому дизайнеру интерфейсов нужно съездить по морде, поучиться у более профессиональных товарищей.
Не хочу сказать, что курсор-палец однозначно плох или курсор-стрелка однозначно хорош. [...] разным людям «очевидно» совершенно разное, совсем как с тем платьем:). [...] дизайнеры игнорировали стандарты в угоду своим собственным «очевидным» привычкам…
курсор-палец остается признаком ссылки
Произвольный вид поля file в html-форме, одинаковый во всех браузерах