実際にはそれは純粋なCSSで行うことができ、それは非常に簡単です...
HTMLコード
<label class="filebutton">
Browse For File!
<span><input type="file" id="myfile" name="myfile"></span>
</label>
CSSスタイル
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;
}
アイデアは、絶対にラベルの内側に入力を配置することです。入力のフォントサイズを大きい値に設定すると、「参照」ボタンのサイズが大きくなります。次に、左/上負のプロパティを使用して試行錯誤を繰り返し、入力参照ボタンをラベルの後ろに配置します。
ボタンを配置するときは、アルファを1に設定します。終了したら、0に戻します(これにより、何をしているのかがわかります)。
すべてのブラウザーでテストを行ってください。すべてのブラウザーで入力ボタンのサイズが少し異なります。