Возможно я не в теме :)
Но как я понял из первой половины статьи (вторую я по своей велико-человеческой лени пропустил) Проблема в том чтобы создавать кнопку открытия диалогового окна подгрузки файла произвольного размера.
Если так, то я как-то повстречал тривиальное, но хрен допрешь решение :)
file инпут как и в начале метода автора помещается в див. Див имеет overflow: hidden и такие размеры которые нам надо (т.е. произвольный). Это всё понятно, но как сделать чтобы кнопка занимала нужное пространство - а здесь есть хак с font-size в инпуте... увеличенный шрифт разрастает кнопку, а из-за overflow: hidden див не расширяется :) итог - весь див есть кнопка, ну конечно надо поставить opacity в 0, чтобы артефакты скрыть и ессно, file отодвинуть так чтобы все кроме кнопки ушло запределы дива...
скорее хак чем солушн :) но в FF и IE работает без проблем :)
ну почему, объясните мне, когда я выкладывал свой тулкит для замены селекта (см. в моём профиле), то на меня сразу наехало куча народу по поводу того, что он криво поддерживался Safari и не работал в Lynx? а тут, нате пожалуйста - 99% в лисе, опере и ие, скрипты вообще отключают психи.. я, конечно, согласен с этим, но вы только почитайте комментарии в моем топике..
обидно блин. :(
Искренне сочувствую. Именно твой тулкит (ничего что я на ты?) подтокнул меня к написанию этого топика да и вообще к разработке идеи. А успех твоей заметки выше, а это уже хорошо.
Кстати, у меня родилась идея (опять же с твоей работы) разработки тулкита для обработки форм (всё-таки jQuery, Prototype, Dojo и иже с ними справляются с этим каждый раз по разному, хотя jQuery лучше всех, вспомнить бы где видел тесты, 10 минут и вспомнил), основан он на расширяемости xml и динамичности jscript т.е. создаётся поле например проверяющее себя по regexp и данный атрибут включается в input text, а jscript находит его и привинчивает необходимые функции, таким образом: <input onChange="alert('hello');" type="text" name="email" regexp="/^[a-z0-9] и т.д." ... />
Если интересно, могу развить идею в личку.
А давайте всё же делать сайты, которые просты, юзабельны и быстры?
Давайте всё же прислушиваться к w3c и не игнорировать слепых людей, людей без JS или на links?
Я сам за такой дизайн но не могу же я заставить Firefox и Opera пересмотреть свою политику и переработать существующие компоненты хотя бы до того чтобы их можно было гибко настраивать.
Способ который я вижу на данный момент - это разработать и внедрить такие компоненты, которые захотят включить в свои продукты эти компании. Да и вообще если почитать Паркинсона, то становится ясно почему w3c теряет свою эффективность...
Ещё и ещё раз повторю - существуют не только четыре основных браузера. И нельзя игнорировать остальных. w3c слабеет, поскольку все хотят такие же эффектные, нажимающиеся, классные сайты. А w3c повторяет по тому же кругу - accessability, usability! Простите, но я с w3c.
сорри, я просто привет свой пример - мой тулкит эмулирует комбобоксы, текстбоксы с подстановкой, мултиопционные селекты и т.п. (http://alx.vingrad.ru/fwc)
все это для упрощения работы с формами пользовтеля!! и поможет он гораздо большим людям, чем помешает тем, у кого выключен JavaScript..
я сейчас о usability.
я размещал заметку на Хабрахабре - http://www.habrahabr.ru/blog/webdev/2388…
для достижения работы в браузерах, где выключен JavaScript, достаточно использовать тег noscript. делать это автоматом совершенно неудобно, тем более, что компонент smartselect - далеко не всегда select. это может быть и input и просто выпадающее меню. проще всего самостоятельно описать альтернативу в Noscript.
сорри за оффтоп.
а по поводу Input:filе - у меня есть идея, как сделать это чуть лучше, я реализую это в ближайшее время как бонус к smartselect`у.
Нельзя делать идеальные решения, если нужен коммерческий успех нужно ориентироваться на большинство, на платёжеспособное большинство... Это правила капитализма, извините.
Пока вы делаете сайт, который хорошо читается в links, вы уверены, что он будет хорошо читаться слепыми, на мобильниках и на любых любых устройствах. Вы оставляете универсальность и открытость интернета. А чем больше у нас распростроняется vendor lock, тем хуже интернету. Linux, кстати, это ещё не всё помимо окошек, так что не надо говорить, что «Firefox работает и под линь».
Заменяем стандартный элемент input file