Mmemo

PC作業に関する覚書やweb制作記録。
無料で使える便利ツールやwebアプリも制作。サイト上(ブラウザ上)で動作。

input[type=file]の機能を保ちつつCSSで装飾する方法

概要

input[type="file"]のデザインをCSSで好きなように装飾する方法。
<label>ではなく<button>を使用することで、focus可能かつEnterでの発火も可能となる。
ドラッグ&ドロップにも対応。

実践

素の状態

装飾無しの基本の状態。ドラッグ&ドロップにも対応。
特にこだわりが無ければそのまま使うのが楽で良い。

コード

<button>で好きなデザインを作る

ボタンを<button>に代行させ、元の<input>は隠す。

コード

ドラッグ&ドロップに対応させる

<button>にしたことでドラッグ&ドロップによるファイル取得が出来なくなるのでJavaScriptで対応させる。
ボタン以外にドロップゾーンを設けることも可能。

ファイルをここにドロップ

コード