Pourquoi n'y a-t-il pas un bouton de téléchargement d'élément de fichier sophistiqué pour Twitter Bootstrap? Ce serait bien si le bouton principal bleu était implémenté pour le bouton de téléchargement. Est-il même possible d'affiner le bouton de téléchargement en utilisant CSS? (semble être un élément de navigateur natif qui ne peut pas être manipulé)
css
forms
twitter-bootstrap
input-type-file
jkushner
la source
la source
Réponses:
Voici une solution pour Bootstrap 3 et 4.
Pour créer un contrôle d'entrée de fichier fonctionnel qui ressemble à un bouton, vous n'avez besoin que de HTML:
HTML
Cela fonctionne dans tous les navigateurs modernes, y compris IE9 +. Si vous avez également besoin d'assistance pour l'ancien IE, veuillez utiliser l'approche héritée illustrée ci-dessous.
Cette technique repose sur l'
hidden
attribut HTML5 . Bootstrap 4 utilise le CSS suivant pour caler cette fonctionnalité dans les navigateurs non compatibles. Vous devrez peut-être ajouter si vous utilisez Bootstrap 3.Approche héritée pour les anciens IE
Si vous avez besoin de prise en charge pour IE8 et versions antérieures, utilisez le code HTML / CSS suivant:
HTML
CSS
Notez que l'ancien IE ne déclenche pas l'entrée de fichier lorsque vous cliquez sur un
<label>
, donc le CSS "ballonnement" fait quelques choses pour contourner cela:<span>
Commentaires et lectures supplémentaires
J'ai publié plus de détails sur cette méthode, ainsi que des exemples pour montrer à l'utilisateur quel / combien de fichiers sont sélectionnés:
http://www.abeautifulsite.net/whipping-file-inputs-into-shape-with-bootstrap-3/
la source
<label>
élément. Comme la meilleure solution :)Je suis surpris qu'il n'y ait aucune mention de l'
<label>
élément.Solution:
Pas besoin de JS ou de CSS funky ...
Solution pour inclure le nom de fichier:
La solution ci-dessus nécessite jQuery.
la source
for
si vous enveloppez l'élément cible avec l'étiquette.Sans plugin supplémentaire requis, cette solution de bootstrap fonctionne très bien pour moi:
démo:
http://jsfiddle.net/haisumbhatti/cAXFA/1/ (bootstrap 2)
http://jsfiddle.net/haisumbhatti/y3xyU/ (bootstrap 3)
la source
Il est inclus dans la fourchette de bootstrap de Jasny.
Un simple bouton de téléchargement peut être créé en utilisant
Avec le plugin fileupload, vous pouvez créer des widgets plus avancés. Jetez un œil à http://jasny.github.io/bootstrap/javascript/#fileinput
la source
Les boutons de téléchargement sont difficiles à styliser car ils stylisent l'entrée et non le bouton.
mais vous pouvez utiliser cette astuce:
http://www.quirksmode.org/dom/inputfile.html
Sommaire:
Prenez une normale
<input type="file">
et mettez-la dans un élément avecposition: relative
.À ce même élément parent, ajoutez une normale
<input>
et une image, qui ont les styles corrects. Positionnez ces éléments de façon absolue, afin qu'ils occupent la même place que le<input type="file">
.Définissez le z-index de
<input type="file">
2 sur afin qu'il se trouve au-dessus de l'entrée / image stylisée.Enfin, définissez l'opacité de la
<input type="file">
sur 0. Le<input type="file">
devient désormais effectivement invisible, et les styles d'entrée / image transparaissent, mais vous pouvez toujours cliquer sur le bouton "Parcourir". Si le bouton est positionné au-dessus de l'image, l'utilisateur semble cliquer sur l'image et obtient la fenêtre de sélection de fichier normale. (Notez que vous ne pouvez pas utiliser la visibilité: caché, car un élément vraiment invisible est également impossible à cliquer, et nous avons besoin de la pour rester cliquable)la source
Travaille pour moi:
Mise à jour
Style de plugin jQuery :
la source
Réponse simplifiée utilisant des parties d'autres réponses, principalement user2309766 et dotcomsuperstar.
Fonctionnalités:
split
pour supprimer le chemin du fichier, utilisez l'expression régulière et les délimiteurs «\» et «/».Code:
la source
Avec une inspiration des autres articles ci-dessus, voici une solution complète qui combine ce qui ressemble à un champ de contrôle de formulaire avec un addon de groupe d'entrée pour un widget d'entrée de fichier propre qui comprend un lien vers le fichier actuel.
la source
Cela fonctionne parfaitement pour moi
la source
Veuillez vérifier la saisie du fichier d'amorçage Twitter . Il utilise une solution très simple, ajoutez simplement un fichier javascript et collez le code suivant:
la source
Une solution simple avec un résultat acceptable:
Et le style:
la source
Solution pour plusieurs téléchargements
J'ai modifié deux réponses précédentes pour inclure plusieurs téléchargements. De cette façon, l'étiquette affiche le nom du fichier, si un seul est sélectionné, ou
x files
dans le cas contraire.Il peut également s'appliquer pour modifier le texte et la classe du bouton.
la source
J'ai créé un bouton de téléchargement personnalisé pour accepter uniquement les images, qui peuvent être modifiées selon vos besoins.
J'espère que cela t'aides!! :)
(Framework Bootstrap utilisé)
Codepen-link
HTML
CSS
JS
la source
c'est le meilleur style de téléchargement de fichiers que j'aime:
vous pouvez obtenir une démo et plus de styles sur:
http://www.jasny.net/bootstrap/javascript/#fileinput
mais en utilisant cela, vous devez remplacer twitter bootstrap par des fichiers jasny bootstrap ..
Cordialement.
la source
Basé sur la solution @claviska absolument géniale, à qui tout le crédit est dû.
Entrée de fichier Bootstrap 4 complète avec validation et texte d'aide.
Sur la base de l' exemple de groupe d'entrée, nous avons un champ de texte de saisie factice utilisé pour afficher le nom de fichier à l'utilisateur, qui est rempli à partir de l'
onchange
événement sur le champ de fichier d'entrée réel caché derrière le bouton d'étiquette. En plus d'inclure le support de validation bootstrap 4, nous avons également permis de cliquer n'importe où sur l'entrée pour ouvrir la boîte de dialogue de fichier.Trois états de l'entrée du fichier
Les trois états possibles sont non validés, valides et invalides avec le
required
jeu d' attributs de balise d'entrée html factice .Balisage HTML pour l'entrée
Nous introduisons seulement 2 classes personnalisées
input-file-dummy
etinput-file-btn
pour styliser et câbler correctement le comportement souhaité. Tout le reste est un balisage Bootstrap 4 standard.Dispositions comportementales JavaScript
L'entrée factice doit être en lecture seule, comme dans l'exemple d'origine, pour empêcher l'utilisateur de modifier l'entrée qui ne peut être modifiée que via la boîte de dialogue d'ouverture de fichier. Malheureusement, la validation ne se produit pas sur les
readonly
champs, nous basculons donc l'éditabilité de l'entrée sur le focus et le flou ( événements jqueryonfocusin
etonfocusout
) et nous assurons qu'elle redevient validable une fois qu'un fichier est sélectionné.En plus de rendre le champ de texte cliquable, en déclenchant l'événement click du bouton, le reste des fonctionnalités de remplissage du champ fictif a été envisagé par @claviska.
Modifications de style personnalisé
Plus important encore, nous ne voulons pas que le
readonly
champ passe entre le fond gris et le blanc, nous nous assurons donc qu'il reste blanc. Le bouton span n'a pas de curseur pointeur mais nous devons quand même en ajouter un pour l'entrée.nJoy!
la source
J'utilise http://gregpike.net/demos/bootstrap-file-input/demo.html :
ou
la source
/ * * Bootstrap 3 filestyle * http://dev.tudosobreweb.com.br/bootstrap-filestyle/ * * Copyright (c) 2013 Markus Vinicius da Silva Lima * Update bootstrap 3 by Paulo Henrique Foxer * Version 2.0.0 * Licensed sous licence MIT. * * /
la source
J'ai modifié la réponse @claviska et fonctionne comme j'aime (Bootstrap 3, 4 non testé):
la source
Le code suivant fait comme ci-dessus l'image
Html
Javascript
la source
J'ai le même problème et je l'essaie comme ça.
Le CSS
Le JS
J'espère que vous avez trouvé la meilleure solution ...
la source
Essayez de suivre dans Bootstrap v.3.3.4
la source
Voici une astuce alternative, ce n'est pas la meilleure solution mais elle vous donne juste le choix
Code HTML:
Javascript:
la source
En ce qui concerne la réponse de claviska - si vous voulez afficher le nom du fichier téléchargé dans un téléchargement de fichier de base, vous pouvez le faire dans l'
onchange
événement des entrées . Utilisez simplement ce code:Ce code Jquery JS est responsable de la récupération du nom de fichier téléchargé:
Ou avec vanille JS:
la source
J'ai pensé ajouter ma valeur de trois points, juste pour dire comment l' entrée de fichier par défaut
.custom-file-label
etcustom-file-input
BS4 et comment cela peut être utilisé.Cette dernière classe fait partie du groupe d'entrée et n'est pas visible. Alors que le premier est l'étiquette visible et a un: après pseudo-élément qui ressemble à un bouton.
Vous ne pouvez pas ajouter de classes aux éléments de simulation, mais vous pouvez les styliser en CSS (ou SASS).
la source
Aucun shiz de fantaisie requis:
HTML:
JS:
ATTENTION: Les trois éléments de formulaire en question DOIVENT être frères et sœurs les uns des autres (.image-file-selected, .image-file-button, .image-file)
la source
http://markusslima.github.io/bootstrap-filestyle/
OU
la source