Wenn Sie es jemals versucht haben, wissen Sie, dass die Implementierung einer einheitlichen Schaltfläche zum Hochladen von Dateien mit reinen CSS-Stilen und HTML problematisch sein kann. Schauen Sie sich unten die Screenshots verschiedener Browser an. Es ist offensichtlich, dass sie sehr unterschiedlich aussehen.
Unser Ziel ist es, eine einfache Schaltfläche zum Hochladen von Dateien zu erstellen, die in reinem CSS implementiert ist und in allen Browsern das gleiche Aussehen und Layout hat. Wir können dies tun:
Schritt 1. Erstellen Sie ein einfaches HTML-Tag
<div class="fileUpload btn btn-primary"> <span>Upload</span> <input type="file" class="upload" /> </div>
Schritt 2: CSS: Etwas knifflig
.fileUpload { position: relative; overflow: hidden; margin: 10px; } .fileUpload input.upload { position: absolute; top: 0; right: 0; margin: 0; padding: 0; font-size: 20px; cursor: pointer; opacity: 0; filter: alpha(opacity=0); }
Der Einfachheit halber verwende ich eine Schaltfläche mit angewendetem BootstrapCSS-Stil (div.file-upload).
Demo:
Upload-Button, zeigt die ausgewählte Datei
Leider kann dies mit reinem CSS nicht durchgeführt werden. Wenn Sie die ausgewählte Datei jedoch wirklich anzeigen möchten, kann Ihnen das folgende JavaScript-Snippet helfen.
JavaScript:
document.getElementById("uploadBtn").onchange = function () { document.getElementById("uploadFile").value = this.value; };
DOM:
<input id="uploadFile" placeholder="Choose File" disabled="disabled" /> <div class="fileUpload btn btn-primary"> <span>Upload</span> <input id="uploadBtn" type="file" class="upload" /> </div>