カスタム ファイル入力スタイル: ラベルベースのアプローチ
多くの開発者は、ファイル アップロード ボタンの外観をカスタマイズするのに苦労しています。 JavaScript は解決策を提供できますが、さらなる課題も引き起こす可能性があります。幸いなことに、HTML
-
JavaScript 不要:
-
スタイリングの自由: 一部のブラウザ固有のスタイル手法とは異なり、
-
セマンティック コード:
実装
このアプローチを実装するには、次の手順に従います。
- 隠しファイルのアップロード入力を
- のスタイルを設定します。コンテナをボタンに似せます。
- ユーザーによるデフォルト ボタンの操作を防ぐため、入力を表示領域の絶対外に配置します。
サンプル コード
<label class="myLabel">
<input type="file" required>
<span>My Label</span>
</label>
ログイン後にコピー
label.myLabel input[type="file"] {
position:absolute;
top: -1000px;
}
/***** Example custom styling *****/
.myLabel {
border: 2px solid #AAA;
border-radius: 4px;
padding: 2px 5px;
margin: 2px;
background: #DDD;
display: inline-block;
}
.myLabel:hover {
background: #CCC;
}
.myLabel:active {
background: #CCF;
}
.myLabel :invalid + span {
color: #A44;
}
.myLabel :valid + span {
color: #4A4;
}
ログイン後にコピー
この例では、入力は上部: -1000px で画面外に配置されます。