Warum gibt es für Twitter-Bootstrap keine ausgefallene Schaltfläche zum Hochladen von Dateielementen? Es wäre süß, wenn der blaue Primärknopf für den Upload-Knopf implementiert wäre. Ist es überhaupt möglich, den Upload-Button mit CSS zu verfeinern? (scheint ein natives Browserelement zu sein, das nicht manipuliert werden kann)
css
forms
twitter-bootstrap
input-type-file
jkushner
quelle
quelle
Antworten:
Hier ist eine Lösung für Bootstrap 3 und 4.
Um ein funktionales Dateieingabesteuerelement zu erstellen, das wie eine Schaltfläche aussieht, benötigen Sie nur HTML:
HTML
Dies funktioniert in allen modernen Browsern, einschließlich IE9 +. Wenn Sie auch Unterstützung für den alten IE benötigen, verwenden Sie bitte den unten gezeigten Legacy-Ansatz.
Diese Technik basiert auf dem HTML5-
hidden
Attribut. Bootstrap 4 verwendet das folgende CSS, um diese Funktion in nicht unterstützenden Browsern zu optimieren. Möglicherweise müssen Sie hinzufügen, wenn Sie Bootstrap 3 verwenden.Legacy-Ansatz für alten IE
Wenn Sie Unterstützung für IE8 und niedriger benötigen, verwenden Sie das folgende HTML / CSS:
HTML
CSS
Beachten Sie, dass alte IE die Datei nicht Eingang auslöst , wenn Sie auf einen Klick
<label>
, so das die CSS „aufblasen“ macht ein paar Dinge zu umgehen , dass:<span>
Feedback & zusätzliche Lektüre
Ich habe weitere Details zu dieser Methode sowie Beispiele veröffentlicht, wie dem Benutzer angezeigt werden kann, welche / wie viele Dateien ausgewählt sind:
http://www.abeautifulsite.net/whipping-file-inputs-into-shape-with-bootstrap-3/
quelle
<label>
Element verwendet. Als beste Lösung :)Ich bin überrascht, dass das
<label>
Element nicht erwähnt wurde .Lösung:
Keine Notwendigkeit für JS oder funky CSS ...
Lösung zum Einfügen des Dateinamens:
Die obige Lösung erfordert jQuery.
quelle
for
wenn Sie das Zielelement mit der Beschriftung umschließen.Da kein zusätzliches Plugin erforderlich ist, funktioniert diese Bootstrap-Lösung hervorragend für mich:
Demo:
http://jsfiddle.net/haisumbhatti/cAXFA/1/ (Bootstrap 2)
http://jsfiddle.net/haisumbhatti/y3xyU/ (Bootstrap 3)
quelle
Es ist in Jasnys Bootstrap-Gabel enthalten.
Eine einfache Upload-Schaltfläche kann mit erstellt werden
Mit dem Fileupload-Plugin können Sie erweiterte Widgets erstellen. Schauen Sie sich http://jasny.github.io/bootstrap/javascript/#fileinput an
quelle
Das Hochladen von Schaltflächen ist schwierig zu gestalten, da die Eingabe und nicht die Schaltfläche formatiert werden.
aber Sie können diesen Trick verwenden:
http://www.quirksmode.org/dom/inputfile.html
Zusammenfassung:
Nehmen Sie ein normales
<input type="file">
und setzen Sie es in ein Element mitposition: relative
.Fügen Sie demselben übergeordneten Element ein normales
<input>
und ein Bild hinzu, die die richtigen Stile haben. Positionieren Sie diese Elemente absolut so, dass sie den gleichen Platz einnehmen wie die<input type="file">
.Stellen Sie den Z-Index von
<input type="file">
auf 2 so ein, dass er über dem gestalteten Eingang / Bild liegt.Stellen Sie abschließend die Deckkraft von
<input type="file">
auf 0 ein. Das wird<input type="file">
nun effektiv unsichtbar und die Stileingabe / das Bild leuchtet durch, aber Sie können trotzdem auf die Schaltfläche "Durchsuchen" klicken. Wenn sich die Schaltfläche über dem Bild befindet, scheint der Benutzer auf das Bild zu klicken und das normale Dateiauswahlfenster aufzurufen. (Beachten Sie, dass Sie Sichtbarkeit nicht verwenden können: versteckt, da ein wirklich unsichtbares Element ebenfalls nicht anklickbar ist und wir das Element benötigen, um anklickbar zu bleiben.)quelle
Funktioniert bei mir:
Aktualisieren
jQuery-Plugin-Stil :
quelle
Vereinfachte Antwort unter Verwendung von Teilen aus anderen Antworten, hauptsächlich user2309766 und dotcomsuperstar.
Eigenschaften:
split
Zum Entfernen des Dateipfads werden Regex und Trennzeichen '\' und '/' verwendet.Code:
quelle
Mit einigen Inspirationen aus anderen oben genannten Beiträgen finden Sie hier eine vollständige Lösung, die ein Formularsteuerungsfeld mit einem Eingabegruppen-Addon für ein sauberes Dateieingabe-Widget kombiniert, das einen Link zur aktuellen Datei enthält.
quelle
Das funktioniert perfekt für mich
quelle
Bitte überprüfen Sie Twitter Bootstrap File Input . Es verwendet eine sehr einfache Lösung, fügen Sie einfach eine Javascript-Datei hinzu und fügen Sie den folgenden Code ein:
quelle
Eine einfache Lösung mit akzeptablem Ergebnis:
Und der Stil:
quelle
Lösung für mehrere Uploads
Ich habe zwei vorherige Antworten so angepasst, dass sie mehrere Uploads enthalten. Auf diese Weise zeigt das Etikett den Dateinamen an, wenn nur einer ausgewählt ist, oder
x files
im umgekehrten Fall.Dies kann auch zum Ändern des Schaltflächentextes und der Klasse gelten.
quelle
Ich habe eine benutzerdefinierte Upload-Schaltfläche erstellt, um nur Bilder zu akzeptieren, die gemäß Ihren Anforderungen geändert werden können.
Hoffe das hilft!! :) :)
(Verwendetes Bootstrap-Framework)
Codepen-Link
HTML
CSS
JS
quelle
Dies ist der beste Stil zum Hochladen von Dateien, den ich mag:
Sie können Demo und mehr Stile erhalten bei:
http://www.jasny.net/bootstrap/javascript/#fileinput
Aber wenn Sie dies verwenden, sollten Sie Twitter Bootstrap durch Jasny Bootstrap-Dateien ersetzen.
Grüße.
quelle
Basierend auf der absolut brillanten @laviska-Lösung, der der gesamte Kredit geschuldet wird.
Voll funktionsfähige Bootstrap 4-Dateieingabe mit Validierung und Hilfetext.
Basierend auf dem Beispiel einer Eingabegruppe haben wir ein Dummy-Eingabetextfeld, das zum Anzeigen des Dateinamens für den Benutzer verwendet wird und das vom
onchange
Ereignis in das tatsächliche Eingabedateifeld eingetragen wird, das hinter der Beschriftungsschaltfläche versteckt ist. Abgesehen von der Unterstützung der Bootstrap 4-Validierung haben wir es auch möglich gemacht, auf eine beliebige Stelle auf die Eingabe zu klicken, um den Dateidialog zu öffnen.Drei Zustände der Dateieingabe
Die drei möglichen Zustände sind nicht validiert, gültig und ungültig, wenn der Attributsatz
required
für das Dummy-HTML-Eingabe-Tag festgelegt ist.HTML-Markup für die Eingabe
Wir führen nur 2 benutzerdefinierte Klassen ein, um das gewünschte Verhalten richtig zu formatieren
input-file-dummy
undinput-file-btn
zu verkabeln. Alles andere ist Standard Bootstrap 4 Markup.Verhaltensbestimmungen für JavaScript
Die Dummy-Eingabe muss gemäß dem ursprünglichen Beispiel schreibgeschützt sein, um zu verhindern, dass der Benutzer die Eingabe ändert, die nur über den Dialog zum Öffnen von Dateien geändert werden kann. Leider findet keine Validierung für
readonly
Felder statt, daher schalten wir die Bearbeitbarkeit der Eingabe auf Fokus und Unschärfe ( jquery eventsonfocusin
undonfocusout
) um und stellen sicher, dass sie nach Auswahl einer Datei wieder validierbar wird.Abgesehen davon, dass das Textfeld durch Klicken des Klickereignisses der Schaltfläche anklickbar gemacht wurde, wurde der Rest der Funktionalität zum Auffüllen des Dummy-Felds von @claviska ins Auge gefasst.
Benutzerdefinierte Stiländerungen
Am wichtigsten ist, dass das
readonly
Feld nicht zwischen grauem und weißem Hintergrund wechselt, damit es weiß bleibt. Die Span-Schaltfläche hat keinen Zeigercursor, aber wir müssen trotzdem einen für die Eingabe hinzufügen.nJoy!
quelle
Ich benutze http://gregpike.net/demos/bootstrap-file-input/demo.html :
oder
quelle
/ * * Bootstrap 3-Dateistil * http://dev.tudosobreweb.com.br/bootstrap-filestyle/ * * Copyright (c) 2013 Markus Vinicius da Silva Lima * Bootstrap 3 von Paulo Henrique Foxer aktualisieren * Version 2.0.0 * Lizenziert unter der MIT-Lizenz. * * /
quelle
Ich habe die Antwort von @claviska geändert und arbeite wie ich möchte (Bootstrap 3, 4 nicht getestet):
quelle
Der folgende Code macht wie oben das Bild
Html
Javascript
quelle
Ich habe das gleiche Problem und ich versuche es so.
Das CSS
Die JS
Ich hoffe, Sie haben die beste Lösung gefunden ...
quelle
Versuchen Sie, im Bootstrap v.3.3.4 zu folgen
quelle
Hier ist ein alternativer Trick, es ist nicht die beste Lösung, aber es gibt Ihnen nur eine Wahl
HTML Quelltext:
Javascript:
quelle
In Bezug auf die Claviska-Antwort: Wenn Sie den Namen der hochgeladenen Datei in einem einfachen Datei-Upload anzeigen möchten, können Sie dies im
onchange
Ereignis " Eingaben" tun . Verwenden Sie einfach diesen Code:Dieser JSQ-Code von jquery ist dafür verantwortlich, den hochgeladenen Dateinamen abzurufen:
Oder mit Vanille JS:
quelle
Ich dachte, ich würde meinen Wert von drei Pence hinzufügen, nur um zu sagen, wie die Standard-
.custom-file-label
undcustom-file-input
BS4-Dateieingabe verwendet wird und wie diese verwendet werden kann.Die letztere Klasse befindet sich in der Eingabegruppe und ist nicht sichtbar. Während ersteres die sichtbare Bezeichnung ist und ein: after-Pseudoelement hat, das wie eine Schaltfläche aussieht.
Sie können Pseudoelementen keine Klassen hinzufügen, aber Sie können sie in CSS (oder SASS) formatieren.
quelle
Kein ausgefallenes Shiz erforderlich:
HTML:
JS:
VORSICHT: Die drei fraglichen Formularelemente MÜSSEN Geschwister voneinander sein (ausgewählte Bilddatei, Bilddateischaltfläche, Bilddatei).
quelle
http://markusslima.github.io/bootstrap-filestyle/
ODER
quelle