На самом деле это можно сделать в чистом CSS, и это довольно просто ...
HTML-код
<label class="filebutton">
Browse For File!
<span><input type="file" id="myfile" name="myfile"></span>
</label>
CSS Styles
label.filebutton {
width:120px;
height:40px;
overflow:hidden;
position:relative;
background-color:#ccc;
}
label span input {
z-index: 999;
line-height: 0;
font-size: 50px;
position: absolute;
top: -2px;
left: -700px;
opacity: 0;
filter: alpha(opacity = 0);
-ms-filter: "alpha(opacity=0)";
cursor: pointer;
_cursor: hand;
margin: 0;
padding:0;
}
Идея состоит в том, чтобы расположить ввод абсолютно внутри вашего ярлыка. установите размер шрифта ввода на что-то большое, что увеличит размер кнопки «Обзор». Затем требуется некоторое количество проб и ошибок, используя отрицательные свойства left / top, чтобы расположить кнопку просмотра ввода позади вашей метки.
При позиционировании кнопки установите альфа на 1. Когда вы закончите, установите ее обратно на 0 (чтобы вы могли видеть, что вы делаете!)
Убедитесь, что вы тестируете в разных браузерах, потому что все они отображают кнопку ввода немного другого размера.
Вы можете увидеть пример здесь (кнопка Добавить трек): http://rakmastering.com/upload/