Je souhaite modifier le texte par défaut sur le bouton " Choose File
" lorsque nous l'utilisons input="file"
.
Comment puis-je faire ceci? Aussi, comme vous pouvez le voir dans l'image, le bouton se trouve sur le côté gauche du texte. Comment puis-je le mettre sur le côté droit du texte?
html
file
input
default-value
Harry Joy
la source
la source
Réponses:
Chaque navigateur a son propre rendu du contrôle et, en tant que tel, vous ne pouvez pas modifier le texte ou l'orientation du contrôle.
Il existe des "sortes de" hacks que vous voudrez peut-être essayer si vous voulez html/css solution plutôt qu’un Flash ou silverlightSolution.
http://www.quirksmode.org/dom/inputfile.html
http://www.shauninman.com/archive/2007/09/10/styling_file_inputs_with_css_and_the_dom
Personnellement, parce que la plupart des utilisateurs s'en tiennent à leur navigateur de choix et sont donc probablement habitués à voir le contrôle dans le rendu par défaut, ils seraient probablement confus s'ils voyaient quelque chose de différent (selon les types d'utilisateurs avec lesquels vous avez affaire) .
la source
Utilisez l'
Vous trouverez ci-dessous le code pour récupérer le nom du fichier téléchargé"for"
attribut delabel
forinput
.la source
display:none
peut être utilisé sur INPUT afin de ne pas utiliser l'espace inutile.Je pense que c'est ce que tu veux:
la source
Cela pourrait aider quelqu'un à l'avenir, vous pouvez styliser l'étiquette de l'entrée comme vous le souhaitez et y mettre tout ce que vous voulez et masquer l'entrée avec display none.
Cela fonctionne parfaitement sur cordova avec iOS
la source
Ce n'est pas possible. Sinon, vous devrez peut-être utiliser le contrôle de téléchargement Silverlight ou Flash.
la source
Voici comment vous pouvez le faire:
jQuery:
css
Code HTML:
la source
C'est toujours le meilleur jusqu'à présent
la source
En utilisant Bootstrap, vous pouvez faire cette chose comme ci-dessous le code.
la source
J'ai fait un script et l'ai publié sur GitHub: obtenez selectFile.js Facile à utiliser, n'hésitez pas à le cloner.
HTML
JS
DEMO
jsfiddle.net/Thielicious/4oxmsy49/
la source
Mise à jour 2017:
J'ai fait des recherches sur la façon dont cela pourrait être réalisé. Et la meilleure explication / tutoriel est ici: https://tympanus.net/codrops/2015/09/15/styling-customizing-file-inputs-smart-way/
J'écrirai un résumé ici au cas où il deviendrait indisponible. Vous devriez donc avoir du HTML:
Puis masquez l'entrée avec CSS:
Puis stylisez l'étiquette:
Ensuite, vous pouvez éventuellement ajouter JS pour afficher le nom du fichier:
Mais vraiment juste lire le tutoriel et télécharger la démo, c'est vraiment bien.
la source
J'utiliserais un
button
pour déclencher leinput
:Rapide et propre.
la source
Vous pouvez utiliser cette approche, cela fonctionne même si beaucoup d'entrées de fichiers.
la source
Cela devrait fonctionner:
la source
Voici comment c'est fait avec bootstrap, seul u devrait mettre l'entrée originale quelque part ... idk dans la tête et supprimer le <br> si vous l'avez, car il est seulement caché et prend de la place de toute façon :)
la source
Permettez-moi d'ajouter un hack que j'ai utilisé. Je voulais avoir une section qui vous permette de glisser-déposer des fichiers, et je voulais que cette section glisser-déposer soit cliquable avec le bouton de téléchargement d'origine.
Voici à quoi cela ressemblait lorsque j'avais terminé (moins la capacité de glisser-déposer, il existe de nombreux tutoriels sur la façon de le faire).
Et puis j'ai en fait créé une série d'articles de blog qui concernent principalement les boutons de téléchargement de fichiers.
la source
Ok donc façon très simple et pure css de créer votre fichier d'entrée personnalisé.
Utilisez des étiquettes, mais comme vous le savez d'après les réponses précédentes, l'étiquette n'invoque pas la fonction onclick dans Firefox, peut être un bogue mais n'a pas d'importance avec ce qui suit.
Ce que vous faites, c'est styliser l'étiquette pour qu'elle ressemble à ce que vous voulez
maintenant, masquez simplement le bouton d'entrée réel, mais vous ne pouvez pas le définir sur
visability: hidden
Alors rendez-vous invisible en définissant
opacity: 0;
maintenant, comme vous l'avez peut-être remarqué, j'ai la même classe sur mon étiquette que mon champ de saisie, c'est parce que je veux que les deux aient le même style, donc partout où vous cliquez sur l'étiquette, vous cliquez en fait sur l'invisible champ de saisie.
la source
Ma solution ...
HTML:
Jquery:
C'est juste du mal: D
la source
la source