Twitter Bootstrap には、なぜ派手なファイル要素アップロード ボタンがないのでしょうか。アップロード ボタンに青いプライマリ ボタンが実装されていればすばらしいのですが。CSS を使用してアップロード ボタンを巧みに調整することは可能でしょうか。(操作できないネイティブ ブラウザー要素のようです)
ベストアンサー1
Bootstrap 3、4、5 のソリューションは次のとおりです。
ボタンのように見える機能的なファイル入力コントロールを作成するには、HTML のみが必要です。
html
<label class="btn btn-default">
Browse <input type="file" hidden>
</label>
これは、IE9+ を含むすべての最新ブラウザで動作します。古い IE のサポートも必要な場合は、以下に示す従来のアプローチを使用してください。
このテクニックは HTML5hidden
属性に依存します。Bootstrap 4 は、サポートされていないブラウザーでこの機能をシムするために次の CSS を使用します。Bootstrap 3 を使用している場合は、追加する必要がある可能性があります。
[hidden] {
display: none !important;
}
古いIE向けのレガシーアプローチ
IE8 以下のサポートが必要な場合は、次の HTML/CSS を使用してください。
html
<span class="btn btn-default btn-file">
Browse <input type="file">
</span>
CS
.btn-file {
position: relative;
overflow: hidden;
}
.btn-file input[type=file] {
position: absolute;
top: 0;
right: 0;
min-width: 100%;
min-height: 100%;
font-size: 100px;
text-align: right;
filter: alpha(opacity=0);
opacity: 0;
outline: none;
background: white;
cursor: inherit;
display: block;
}
古い IE では、をクリックしてもファイル入力がトリガーされないことに注意してください<label>
。そのため、CSS の「膨張」によって、これを回避するためにいくつかの処理が行われます。
- ファイル入力を周囲の全幅/全高さに広げます
<span>
- ファイル入力を非表示にする
フィードバックと追加資料
この方法についての詳細と、選択されているファイルとその数をユーザーに表示する方法の例を投稿しました。
https://www.abeautifulsite.net/posts/whipping-file-inputs-into-shape-with-bootstrap-3/