Ist es möglich, das Aussehen von zu ändern <input type="file">
?
html
css
file-upload
input
Newbie Coder
quelle
quelle
Antworten:
Sie können nicht viel am
input[type=file]
Steuerelement selbst ändern .Da durch Klicken auf ein
label
Element, das korrekt mit einer Eingabe gekoppelt ist, diese aktiviert / fokussiert wird, können Sie mit alabel
das Dialogfeld zum Durchsuchen des Betriebssystems auslösen.Hier ist, wie Sie es tun können ...
Das CSS für das Formularsteuerelement lässt es unsichtbar erscheinen und nimmt keinen Platz im Dokumentlayout ein, ist aber weiterhin vorhanden, sodass es über das aktiviert werden kann
label
.Wenn Sie den vom Benutzer ausgewählten Pfad nach der Auswahl anzeigen möchten, können Sie das
change
Ereignis mit JavaScript abhören und dann den Pfad lesen, den der Browser Ihnen zur Verfügung stellt (aus Sicherheitsgründen kann er Sie über den genauen Pfad belügen ). Eine Möglichkeit, es für den Endbenutzer hübsch zu machen, besteht darin, einfach den Basisnamen des zurückgegebenen Pfads zu verwenden (sodass der Benutzer einfach den ausgewählten Dateinamen sieht).Es gibt eine großartige Anleitung von Tympanus, um dies zu stylen .
quelle
#container { position: relative; width: ...px; height: ...px; overflow: hidden; } #input { position: absolute; right: 0; font-size: <many a>px; opacity: 0; margin: 0; padding: 0; border: none; }
<label>
(wie von Tympanus gezeigt) ist weitaus semantischer und weniger hackig. Auch diese Frage wurde einige Jahre später erneut gestellt und hat dort viel bessere Antworten: Browserübergreifendes benutzerdefiniertes Styling für die Schaltfläche zum Hochladen von Dateien .So etwas vielleicht?
quelle
display: none
entfernt die Eingabe aus der Tabulatorreihenfolge, wodurch die Seite weniger zugänglich wird. Die Verwendung<label>
(wie von Tympanus gezeigt) ist weitaus semantischer und weniger hackig. Auch diese Frage wurde einige Jahre später erneut gestellt und hat dort viel bessere Antworten: Browserübergreifendes benutzerdefiniertes Styling für die Schaltfläche zum Hochladen von Dateien .warum nicht? ^ _ ^
Siehe das Beispiel hier
quelle
<label>
(wie von Tympanus gezeigt) ist eine semantisch korrekte Lösung. Auch diese Frage wurde einige Jahre später erneut gestellt und hat dort viel bessere Antworten: Browserübergreifendes benutzerdefiniertes Styling für die Schaltfläche zum Hochladen von Dateien .Wenn Sie Bootstrap verwenden , ist hier eine bessere Lösung:
Für IE8 und darunter http://www.abeautifulsite.net/whipping-file-inputs-into-shape-with-bootstrap-3/
Quelle: https://stackoverflow.com/a/18164555/625952
quelle
Einfachster Weg..
quelle
Im Webkit können Sie dies ausprobieren ...
quelle
Zuallererst ist es ein Container:
Das zweite ist ein CSS-Stil, wenn Sie wirklich mehr Anpassungen vornehmen möchten, müssen Sie nur die Augen offen halten :)
Dieses Beispiel hat keinen Stil für Text innerhalb der Schaltfläche. Es hängt von der Schriftgröße ab. Korrigieren Sie einfach die Höhe und die Füllwerte für den Container
quelle
right: 0
stattleft: 0
? Auf diese Weise hätten Sie dh das Textfeld aus dem Container. Durch Klicken auf das Textfeld wird das Dialogfeld "Datei auswählen" nicht geöffnet. Außerdem glaube ich, dassfont-size
es viel besser ist , die Eingabedatei mit zu vergrößern, als mitwidth
undheight
.Der Trick besteht darin, die Eingabe auszublenden und die Beschriftung anzupassen.
HTML:
CSS:
JS:
Sie können dieses Beispiel überprüfen: https://jsfiddle.net/rjurado/hnf0zhy1/4/
quelle
Es ist viel besser, wenn Sie nur a verwenden
<label>
, das ausblenden<input>
und das Etikett anpassen.HTML:
CSS:
quelle
display: none
entfernt das Element aus der Tabulatorreihenfolge. Die Verwendung<label>
(wie von Tympanus gezeigt) ist die semantisch korrekte Methode, erfordert jedoch einige Verbesserungen. Auch diese Frage wurde einige Jahre später erneut gestellt und hat dort viel bessere Antworten: Browserübergreifendes benutzerdefiniertes Styling für die Schaltfläche zum Hochladen von Dateien .Um den Pfad der ausgewählten Datei anzuzeigen, können Sie dies auf HTML versuchen:
und in Javascript:
und Stil:
quelle
Bootstrap-Beispiel
quelle
Ich habe mich für diese Option entschieden, die verdeutlicht, wie die Schaltfläche zum Durchsuchen vollständig angepasst werden kann, indem ein Handler des hochgeladenen Dateinamens hinzugefügt wird, der ebenfalls angepasst wurde. Es werden zusätzliche Felder und clientseitige Steuerelemente hinzugefügt, um zu zeigen, wie das Durchsuchen in einer "echten" Form und nicht nur in einer eigenständigen Form eingeschlossen werden kann.
Hier ist der Codepen: http://codepen.io/emiemi/pen/zxNXWR
JS:
HTML:
quelle
Hier ist eine Möglichkeit, die mir gefällt, weil dadurch die Eingabe den gesamten Container ausfüllt. Der Trick ist die "Schriftgröße: 100px" und muss mit dem "Überlauf: versteckt" und der relativen Position übereinstimmen.
quelle
position: absolute; right: 0; font-size: <many>px;
Sie können sie formatieren, aber die bereits vorhandenen Elemente nicht entfernen. Wenn Sie kreativ sind, können Sie damit arbeiten und so etwas tun:
http://jsfiddle.net/zr1x1m2b/1/
Ich schlage vor, Sie spielen mit diesem Code herum, entfernen Zeilen, fügen Ihre eigenen hinzu und tun alles, bis Sie etwas bekommen, das so aussieht, wie Sie es mögen!
quelle
<label>
(wie von Tympanus gezeigt) ist semantisch und bietet vollständige Anpassbarkeit. Auch diese Frage wurde einige Jahre später erneut gestellt und hat dort viel bessere Antworten: Browserübergreifendes benutzerdefiniertes Styling für die Schaltfläche zum Hochladen von Dateien .Gestalten Sie einfach eine normale Schaltfläche mit Ihrem bevorzugten CSS, wie Sie möchten.
Rufen Sie dann eine einfache JS-Funktion auf, um ein verstecktes Eingabeelement zu erstellen und mit Ihrer gestalteten Schaltfläche zu verknüpfen. Fügen Sie kein browserspezifisches CSS hinzu, um den Teil auszublenden.
Beachten Sie, wie der obige Code ihn jedes Mal neu verknüpft, wenn der Benutzer eine Datei auswählt. Dies ist wichtig, da "onchange" nur aufgerufen wird, wenn der Benutzer den Dateinamen ändert. Aber Sie möchten die Datei wahrscheinlich jedes Mal abrufen, wenn der Benutzer sie bereitstellt.
Weitere Informationen finden Sie in DropZone- und Google Mail-Uploads.
quelle
Dies ist mein voll funktionsfähiges kundenspezifisches Hochladen / Anhängen von Dateien mit jquery & javascript (Visual Studio). Das wird nützlich sein!
Code wird im Kommentarbereich verfügbar sein!
Link: https://youtu.be/It38OzMAeig
Genießen :)
quelle
Hier ist eine schnelle, reine CSS-Problemumgehung (funktioniert auf Chrome und enthält einen FireFox-Fallback), einschließlich des Dateinamens, einer Beschriftung und einer benutzerdefinierten Upload-Schaltfläche, die genau das tut, was sie sollte - JavaScript wird überhaupt nicht benötigt! 🎉
Hinweis: ☝ Dies funktioniert unter Chrome und hat einen FireFox-Fallback - auf jeden Fall würde ich es nicht auf einer realen Website verwenden - wenn die Browserkompatibilität für Sie von Bedeutung ist (was es sein sollte). Es ist also eher experimentell.
quelle
Hier ist eine Möglichkeit, die ich kürzlich mit ein bisschen jQuery entdeckt habe
HTML Quelltext:
Für den Javascript / jQuery-Teil:
In diesem Beispiel habe ich ein "Anker" -Tag eingefügt, um den Datei-Upload auszulösen. Sie können durch alles ersetzen, was Sie wollen. Denken Sie daran, das Attribut "onclick" mit der richtigen Funktion zu versehen.
Hoffe das hilft!
PS: Vergessen Sie nicht, jQuery von CDN oder einer anderen Quelle einzuschließen
quelle
display: none
entfernt die Eingabe aus der Tabulatorreihenfolge. Die Verwendung<label>
(wie von Tympanus gezeigt) ist weitaus semantischer und weniger hackig. Auch diese Frage wurde einige Jahre später erneut gestellt und hat dort viel bessere Antworten: Browserübergreifendes benutzerdefiniertes Styling für die Schaltfläche zum Hochladen von Dateien .