Ein Styling input type="file"
Habe ich gelesen über dieses von mehreren stellen.
Habe ich versucht die Methode finden Sie hier: http://www.quirksmode.org/dom/inputfile.html
Konnte ich nicht zum laufen bekommen. Also versuchte ich ein CSS/HTML-Methode und es funktioniert wunderbar in Firefox, Chrome, Safari und Opera (alle aktuellen Versionen) aber nicht in (Sie Ahnen es) IE8.
Sieht es in Ordnung, wenn Sie darauf klicken, es funktioniert nicht. Wenn Sie doppelklicken Sie darauf, es funktioniert.
Irgendwelche Ideen, wie man diese Arbeit mit einem Klick?
Momentan benutze ich den IE conditional comments, um Benutzer zu sagen, die mit dem IE doppelklicken Sie auf die select-Taste. Die Seite befindet sich derzeit in der design-und nicht Leben, um die Benutzer noch nicht und würde gerne dieses Problem lösen, bevor es live geht, wenn möglich.
- Ein Styling input type="file" ...FML 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, ich fand zwei Lösungen für Ihr problem. Sie mit:
filter:alpha(opacity: 0)
auf Ihrem
.file
Klasse, wodurch die eigentliche "Durchsuchen..." - Schaltfläche, die Sie normalerweise sehen in den upload steuert.Die erste Lösung wäre die Verwendung einer bedingten festlegen der CSS, dass Sie ersetzen Ihre Lust auf "Wählen Sie image" mit der normalen noch mit Stil "Durchsuchen" - button, wenn der Benutzer wird mit IE.
Die zweite würde sein, zu spielen mit der Größe der
FileAttachment
input und so die versteckten button "Durchsuchen..." passen würde, in die position des "Select" - Bild. Von dort müssen Sie nur noch sicherstellen, dass diez-index
- Eigenschaft der Schaltfläche höher ist als die der Bild.Lassen Sie mich wissen, wenn diese Lösungen lösen Ihre Bedürfnisse.
😀
Eine schöne Lösung, die Ihnen erlaubt, um eine einzige auf der Arbeit ist, verwenden Sie ein label-element, und seine Eigenschaft "gut", die können Sie verbinden Sie es mit dem Eingang. Ein weiteres wichtiges element dieser Lösung ist die Anwendung der filter:alpha(opacity=0) auf das input-element.
HTML:
CSS:
Habe ich eine Lösung, die Ihnen helfen, den Stil der Taste, wie Sie möchten, und halten Sie es mit einem Klick in allen Browsern auch.
Im Grunde erstellen Sie einen div und gibst ihm eine Klasse oder id für Beispiele halber nennen wir diese "outer_div".
Dann legen Sie Ihre Datei-Eingang im inneren des "outer_div" und geben Sie eine id für dieses Beispiel nennen wir es "file_input_name".
Als Nächstes kommt die CSS...
Für die "outer_div" geben Sie die folgenden Eigenschaften
Stellen Sie sicher, dass Ihre Schaltfläche hat die gleiche Breite Eigenschaften für diese zu arbeiten.
Neben den CSS-Code für file_input_name:
Dies sollte den trick tun. Im Grunde, was passiert ist, wir setzen den file-input, so dass die Schaltfläche "durchsuchen" über Ihre hintergrund-Bild statt, wo sich die Datei-URL.
Habe ich dies getan, mein selbst und es funktioniert in IE und Firefox /safari /chrome.
Lassen Sie mich wissen, wie Sie zu erhalten oder wenn Sie weitere Hilfe benötigen.
Den Grund müssen Sie klicken Sie doppelt ist, weil der "text area".
Das erste Bild hier ist von einem IE8 upload-Steuerelement. Beachten Sie, wie es ist, das Textfeld und der Schaltfläche. Der Benutzer einmal auf den button klickt ODER doppelklickt das Textfeld, um den Knopf.
[ arg, tut mir Leid, mein Ruf ist nicht hoch genug für Bilder ]
Wenn Sie überlagern, dass der text-Bereich ist überlappend, was Sie wollen, mit einem Klick, was es erfordert einen Doppelklick.
Das nächste Bild ist das gleiche Datei-upload-Steuerelement mit keine Deckkraft besitzt eine Schaltfläche, über die Spitze, und hat ein Umriss aus IE8 die DOM-Inspektor. Wenn ich auf die ganz Rechte Teil von der blauen Rechteck ein einziger Klick, jedes, wo sonst ist ein doppelter. Beachten Sie auch den text Bearbeiten Einfügemarke überlagert aus der Datei input-ontop die Taste.
[ Bild weggelassen ]
Die Lösung ist, um die Größe/position der Datei versteckte Datei input setzen die Schaltfläche "durchsuchen", wo Sie es wollen.
Mit einigen Bootstrap Magie, ich habe es gemacht, ist super einfach.
Ok, nach dem einlegen der link zu Bootstrap-css - in Ihrem Kopf label, dies zu tun:
<div class="fileUpload btn btn-primary">
<span>Upload</span>
<input type="file" class="upload" />
</div>
Erstellen einer input type file, gestylt durch die bootstrap-css.
Und jetzt kam der schwierige Teil:
Und das ist alles, jetzt haben Sie eine funktionale Schaltfläche (input type file) mit Stil.
Fand ich dieser Artikel, weil ich hatte das gleiche problem, können Sie überprüfen Sie es für mehr info.
Im Grunde ist es nicht dein problem eigentlich IE dauert ein Datei-upload-Steuerelement in unterschiedlicher Art und Weise.
Sie verstehen die Datei-upload-Steuerelement wie ein Textfeld und die Eingabe-Taste, wenn Sie einzelne klicken Sie auf Datei hochladen", Durchsuchen" oder "select" - Taste, es öffnet sich das Dialogfeld öffnen, aber wenn Sie einzelne klicken auf Datei hochladen text den Fokus der textbox und dann wieder klicken Sie auf das Textfeld, es öffnet sich das Dialogfeld öffnen. Sie können sagen, dies ist die vordefinierte bug im IE, also können wir nichts tun, und die meisten Benutzer kennen dieses problem.
Wenn Ihr zu verbergen versucht die Standard-Eingabe-Taste, ohne dabei die Standard-IE8 Verhalten auf Eingabe-Datei und auch cross-browser-Unterstützung versuchen Sie die Anwendung
in der css und Ihr gut zu gehen
Es ist schon eine Weile her, seit ich diese Frage gestellt, und unten ist die Methode, die ich jetzt verwenden für styling Datei-Eingänge. Diese info kommt von Codrops. Es geht viel mehr Details und bietet mehrere Beispiele, aber hier sind die Grundlagen:
HTML
MÜSSEN PRÜFEN, JS
CSS
JS