В дополнение к обучающей программе quirksmode, есть еще один хороший ресурс:
http://www.shauninman.com/archive/2007/09/10/styling_file_inputs_with_css_and_the_dom
Если вы скрываете фактический элемент управления, помните, что очень важно установить непрозрачность элемента управления на ноль, а не использовать visibility: hidden
. Это фактически скроет элемент, отключив действие щелчка.
Кроме того, если вы закрываете элемент управления графической кнопкой, имейте в виду, что в некоторых браузерах (Firefox и IE, я полагаю) вы не сможете изменить тип курсора на руку, когда он закончится. часть ввода текста в элементе управления файлом (он всегда будет по умолчанию для ввода или обычного не связанного указателя). И да, я пытался использовать cursor: pointer
(и cursor: hand
).
Лично я боролся с настраиваемыми ящиками для загрузки, и не было серебряной пули для улучшения их внешнего вида или настройки. (особенно в отношении поведения курсора, поскольку я считаю, что прерыватель сделки в пользовательском интерфейсе). В конце концов, я думаю, что проще признать, что разные браузеры будут по-разному отображать элемент управления, и это так.