Remplacer input type=file par une image
Comme beaucoup de gens, j'aimerais personnaliser le laid input type=file
, et je sais qu'il ne peut pas se faire sans quelques hacks et/ou javascript
. Mais, le truc, c'est que dans mon cas, le fichier de téléchargement boutons sont simplement de téléchargement d'images (jpeg|jpg|png|gif), donc je me demandais si je pouvais utiliser un "clickable
" image qui agissent exactement comme un input type file (afficher la boîte de dialogue, et même $_FILE sur la page).
J'ai trouvé des solution de contournement ici, et cette intéressante trop (mais ne fonctionne pas sur Chrome =/).
Ce que les gars, vous ne le faites lorsque vous voulez ajouter un peu de style à votre fichier de boutons? Si vous avez un point de vue à ce sujet, il suffit de frapper le bouton réponse 😉
- Pour tout le monde en débarquant ici, tympanus.net/codrops/2015/09/15/... pourrait également être en valeur un regard. (Non affilié à ce site, en aucune façon, la forme ou la forme.)
- Vous pouvez consulter Comment faire de la photo pour le travail que l'entrée de type de fichier?.
Vous devez vous connecter pour publier un commentaire.
Cela fonctionne vraiment bien pour moi:
CSS:
HTML:
Fondamentalement la pour attribut de l'étiquette qu'il fait en sorte que cliquant sur l'étiquette est la même que de cliquer sur l'entrée spécifié.
Aussi, la propriété display none fait en sorte que le fichier d'entrée n'est pas rendus à tous, en le cachant agréable et propre.
Testé dans Chrome mais d'après le web devrait fonctionner sur tous les principaux navigateurs. 🙂
EDIT:
Ajouté JSFiddle ici: https://jsfiddle.net/c5s42vdz/
En fait, il peut être fait en pur css et c'est assez facile...
Code HTML
Styles CSS
L'idée est de positionner l'entrée absolument à l'intérieur de votre étiquette. définissez la taille de police de l'entrée à quelque chose de grand, qui va augmenter la taille du bouton "parcourir". Il prend alors quelques essais et d'erreur en utilisant le négatif à gauche /haut de la page des propriétés de la position de l'entrée bouton parcourir derrière votre étiquette.
Lors du positionnement de la touche, définir l'alpha à 1. Lorsque vous avez fini de définir à 0 (donc vous pouvez voir ce que vous faites!)
Assurez-vous de tester sur tous les navigateurs, car ils vont tous rendre sur le bouton input est légèrement différente de la taille.
Vous pouvez voir un exemple ici (Ajouter un bouton de Piste): http://rakmastering.com/upload/
Excellente solution par @hardsetting,
Mais j'ai fait quelques améliorations à faire le travail avec Safari(5.1.7) dans windows
CSS:
HTML:
J'ai utilisé
visibility: hidden, width:0
au lieu dedisplay: none
pour safari question et a ajoutépointer-events: none
dansimg
tag pour qu'il fonctionne si un fichier d'entrée type de balise en balise FORM.Semble de travail pour moi dans tous les principaux navigateurs.
Espère que cela aide quelqu'un.
Je voudrais utiliser SWFUpload ou Uploadify. Ils ont besoin de Flash, mais faire tout ce que vous voulez sans problèmes.
Tout
<input type="file">
base de solution de contournement qui essaie de déclencher l'ouverture du fichier boîte de dialogue" par d'autres moyens que de cliquer sur le contrôle réel pourrait être retiré de navigateurs pour des raisons de sécurité à tout moment. (Je pense dans les versions actuelles de FF et IE, il n'est plus possible de déclencher l'événement de la programmation.)C'est ma méthode, si j'étais votre point de
HTML
jQuery
son vraiment simple, vous pouvez essayer ceci:
Vous pouvez mettre une image à la place, et de faire comme ceci:
HTML:
JQuery:
Mise en garde:
Dans IE9 et IE10 si vous déclenchez le onclick dans un fichier d'entrée via javascript le formulaire est marqué comme "dangereuses", et ne peut pas être submmited avec javascript, pas sûr si elle peut être soumis traditionaly.
CSS:
HTML:
EXÉCUTER EXTRAIT ou il suffit de copier le code ci-dessus et de les exécuter. Vous obtiendrez ce que vous vouliez. Très simple et efficace sans javascript. Profitez-en!!!
L'entrée est cachée avec CSS visibility:hidden.
Alors vous pouvez avoir tout ce que l'élément que vous désirez - ancre ou de l'image.., lorsque l'ancre/l'image est cliquée, déclencher un clic sur le champ caché - la boîte de dialogue de sélection de fichier apparaît.
EDIT: en Fait il fonctionne dans Chrome et Safari, je viens de remarquer que n'est pas le cas dans FF4Beta
Code De Travail:
vient masquer l'entrée de la partie et de faire comme cela.