J'ai une liste restreinte de genres.
Code:
<select>
<option>male</option>
<option>female</option>
<option>others</option>
</select>
Je veux utiliser une image dans la liste déroulante comme drop-down-icon.jpeg.
Je souhaite ajouter un bouton à la place de l'icône déroulante.
Comment faire ça?
<option>
s; pris en charge par tout depuis IE 8.0, petit et simple.Réponses:
Dans Firefox, vous pouvez simplement ajouter une image d'arrière-plan à l'option:
Mieux encore, vous pouvez séparer HTML et CSS comme ça
HTML
CSS
Dans d' autres navigateurs, le seul moyen de le faire serait d'utiliser une bibliothèque de widgets JS, comme par exemple l' interface utilisateur jQuery , par exemple en utilisant Selectable .
Depuis jQuery UI 1.11, le widget Selectmenu est disponible, ce qui est très proche de ce que vous voulez.
la source
Ma solution est d'utiliser FontAwesome puis d'ajouter des images de la bibliothèque sous forme de texte! Vous avez juste besoin des Unicodes et ils se trouvent ici: Fichier de référence FontAwesome pour Unicodes
Voici un exemple de filtre d'état:
la source
Vous pouvez utiliser iconselect.js; Sélection d'icône / image (liste déroulante, liste déroulante)
Démo et téléchargement; http://bug7a.github.io/iconselect.js/
Utilisation HTML;
Utilisation de Javascript;
la source
<!doctype html>
défini.Vous avez déjà plusieurs réponses qui suggèrent d'utiliser JavaScript / jQuery. Je vais ajouter une alternative qui n'utilise que HTML et CSS sans aucun JS.
L'idée de base est d'utiliser un ensemble de boutons radio et d'étiquettes (qui activeront / désactiveront les boutons radio), et avec le contrôle CSS que seule l'étiquette associée au bouton radio sélectionné sera affichée. Si vous souhaitez autoriser la sélection de plusieurs valeurs, vous pouvez y parvenir en utilisant des cases à cocher au lieu de boutons radio.
Voici un exemple. Le code peut être un peu plus compliqué (spécialement comparé aux autres solutions):
la source
Une autre solution jQuery cross-browser pour ce problème est http://designwithpc.com/Plugins/ddSlick qui est fait exactement pour cette utilisation.
la source
$(...).ddslick
n'est pas une fonction dans la console de FirefoxAvec les pays, les langues ou les devises, vous pouvez utiliser des émojis.
Fonctionne avec à peu près tous les navigateurs / systèmes d'exploitation prenant en charge l'utilisation des emojis.
la source
Pour une image à deux couleurs, vous pouvez utiliser Fontello et importer tout glyphe personnalisé que vous souhaitez utiliser. Créez simplement votre image dans Illustrator, enregistrez-la au format SVG et déposez-la sur le site Fontello, puis téléchargez votre police personnalisée prête à être importée. Pas de JavaScript!
la source
J'ai essayé plusieurs sélections personnalisées basées sur jquery avec des images, mais aucune ne fonctionnait dans des mises en page réactives. Enfin, je suis tombé sur Bootstrap-Select. Après quelques modifications, j'ai pu produire ce code.
Code et dépôt github ici
la source
Pour ceux qui souhaitent afficher une icône, et acceptant une solution "noir et blanc", une possibilité consiste à utiliser des entités caractères:
Par extension, vos icônes peuvent être stockées dans une police personnalisée. Voici un exemple utilisant la police FontAwesome : https://jsfiddle.net/14606fv9/2/ https://jsfiddle.net/14606fv9/2/
L'un des avantages est qu'il ne nécessite aucun Javascript. Cependant, faites attention au fait que le chargement de la police complète ne ralentit pas le chargement de votre page.
Nota bene: La solution d'utiliser une image de fond ne semble plus fonctionner sous Firefox (du moins en version 57 "Quantum"):
la source
Réponse gratuite Alvaros JS été un bon début pour moi, et j'ai vraiment essayé d'obtenir une réponse vraiment sans JS qui fournissait toujours toutes les fonctionnalités attendues d'un Select avec des images, mais malheureusement, l'imbrication des formulaires a été la chute. Je poste deux solutions ici; ma solution principale qui utilise 1 ligne de JavaScript, et une solution totalement sans JavaScript qui ne fonctionnera pas dans un autre formulaire, mais pourrait être utile pour les menus de navigation.
Malheureusement, il y a un peu de répétition dans le code, mais quand vous pensez à ce qu'est un Select, cela a du sens. Lorsque vous cliquez sur une option, il copie ce texte dans la zone sélectionnée, c'est-à-dire que cliquer sur 1 des 4 options ne changera pas les 4 options, mais le haut répètera maintenant celle sur laquelle vous avez cliqué. Pour ce faire avec des images, il faudrait JavaScript, orrrr ... vous dupliquez les entrées.
Dans mon exemple, nous avons une liste de jeux (Produits), qui ont des versions. Chaque produit peut également avoir des extensions, qui peuvent également avoir des versions. Pour chaque produit, nous donnons à l'utilisateur une liste de chaque version s'il y en a plus d'une, avec une image et un texte spécifique à la version.
En utilisant JS pour la désélection de la case à cocher, nous pouvons avoir plusieurs instances sur un formulaire. Ici, j'ai étendu pour afficher une liste d'extensions, qui ont également la même logique autour des versions.
Bien sûr, cela nécessite un peu de CSS, que je n'ai inclus dans ce JSFiddle que pour réduire la taille de cette réponse déjà massive. J'ai utilisé Bootstrap 4 pour réduire la quantité nécessaire et pour lui permettre de s'intégrer avec d'autres contrôles Bootstrap et toutes les personnalisations de site qui ont été effectuées.
Les images sont réglées à 75px, mais cela peut facilement être changé en 5 lignes dans
.rich-select
et.rich-select-option-body img
la source
J'ai eu le même problème. Ma solution était un foreach de boutons radio, avec l'image à droite de celui-ci. Puisque vous ne pouvez choisir qu'une seule option à la radio, cela fonctionne (comme) une sélection.
Travaillez bien pour moi. J'espère que cela peut aider quelqu'un d'autre.
la source
<select>
n'est pas nécessairement pour sélectionner une seule valeurCela utilise ms-Dropdown: https://github.com/marghoobsuleman/ms-Dropdown
La ressource de données est json. Mais vous n'avez pas besoin d'utiliser json. Si vous le souhaitez, vous pouvez utiliser avec css.
Exemple CSS: https://github.com/marghoobsuleman/ms-Dropdown/tree/master/examples
Exemple Json: http://jsfiddle.net/tcibikci/w3rdhj4s/6
HTML
Scénario
la source
MISE À JOUR: À partir de 2018, cela semble fonctionner maintenant. Testé dans Chrome, Firefox, IE et Edge
la source