Tengo una lista selecta de géneros.
Código:
<select>
<option>male</option>
<option>female</option>
<option>others</option>
</select>
Quiero usar una imagen en la lista desplegable como drop-down-icon.jpeg.
Quiero agregar un botón en lugar del icono desplegable.
¿Como hacer eso?
<option>
s; compatible con todo, desde IE 8.0, pequeño y simple.Respuestas:
En Firefox puedes agregar una imagen de fondo a la opción:
Mejor aún, puede separar HTML y CSS así
HTML
CSS
En otros navegadores, la única forma de hacerlo sería usar alguna biblioteca de widgets JS, como por ejemplo jQuery UI , por ejemplo, usando Seleccionable .
Desde jQuery UI 1.11, el widget Selectmenu está disponible, que está muy cerca de lo que desea.
fuente
¡Mi solución es usar FontAwesome y luego agregar imágenes de la biblioteca como texto! Solo necesita los Unicodes y se encuentran aquí: FontAwesome Reference File forUnicodes
Aquí hay un ejemplo de filtro de estado:
fuente
Puede usar iconselect.js; Selección de icono / imagen (cuadro combinado, menú desplegable)
Demo y descarga; http://bug7a.github.io/iconselect.js/
Uso de HTML;
Uso de Javascript;
fuente
<!doctype html>
definido.Ya tiene varias respuestas que sugieren usar JavaScript / jQuery. Voy a agregar una alternativa que solo usa HTML y CSS sin ningún JS.
La idea básica es usar un conjunto de botones de radio y etiquetas (que activarán / desactivarán los botones de radio), y con el control CSS, solo se mostrará la etiqueta asociada al botón de radio seleccionado. Si desea permitir la selección de múltiples valores, puede lograrlo mediante el uso de casillas de verificación en lugar de botones de radio.
Aquí hay un ejemplo. El código puede ser un poco más desordenado (especialmente en comparación con las otras soluciones):
fuente
Otra solución de navegador cruzado de jQuery para este problema es http://designwithpc.com/Plugins/ddSlick, que está hecho exactamente para este uso.
fuente
$(...).ddslick
no es una función en la consola de FirefoxCon países, idiomas o moneda puede usar emojis.
Funciona con casi todos los navegadores / sistemas operativos que admiten el uso de emojis.
fuente
Para una imagen de dos colores, puede usar Fontello e importar cualquier glifo personalizado que desee usar. Simplemente haga su imagen en Illustrator, guárdela en SVG y suéltela en el sitio de Fontello, luego descargue su fuente personalizada lista para importar. ¡Sin JavaScript!
fuente
Intenté varias selecciones personalizadas basadas en jquery con imágenes, pero ninguna funcionó en diseños receptivos. Finalmente me encontré con Bootstrap-Select. Después de algunas modificaciones pude producir este código.
Código y repositorio github aquí
fuente
Para aquellos que desean mostrar un icono y aceptan una solución "en blanco y negro", una posibilidad es utilizar entidades de caracteres:
Por extensión, sus iconos se pueden almacenar en una fuente personalizada. Aquí hay un ejemplo usando la fuente FontAwesome : https://jsfiddle.net/14606fv9/2/ https://jsfiddle.net/14606fv9/2/
Una ventaja es que no requiere ningún Javascript. Sin embargo, tenga en cuenta que cargar la fuente completa no ralentiza la carga de su página.
Nota bene: La solución de usar una imagen de fondo ya no parece funcionar en Firefox (al menos en la versión 57 "Quantum"):
fuente
La respuesta gratuita de Alvaros JS fue un gran comienzo para mí, y realmente intenté obtener una respuesta verdaderamente libre de JS que aún ofreciera toda la funcionalidad esperada de un Select con imágenes, pero lamentablemente los formularios de anidación fueron la caída. Estoy publicando dos soluciones aquí; mi solución principal que usa 1 línea de JavaScript, y una solución totalmente libre de JavaScript que no funcionará dentro de otro formulario, pero podría ser útil para los menús de navegación.
Desafortunadamente, hay un poco de repetición en el código, pero cuando piensas en lo que hace un Select tiene sentido. Cuando hace clic en una opción, copia ese texto en el área seleccionada, es decir, hacer clic en 1 de 4 opciones no cambiará las 4 opciones, pero la parte superior ahora repetirá la que hizo clic. Hacer esto con imágenes requeriría JavaScript, orrrr ... duplicar las entradas.
En mi ejemplo, tenemos una lista de juegos (Productos), que tienen versiones. Cada producto también puede tener expansiones, que también pueden tener versiones. Para cada Producto, le damos al usuario una lista de cada versión si hay más de una, junto con una imagen y un texto específico de la versión.
Usando JS para la deselección de la casilla de verificación podemos tener múltiples instancias en un formulario. Aquí me he extendido para mostrar una lista de expansiones, que también tienen la misma lógica en torno a las versiones.
Por supuesto, esto requiere un poco de CSS, que solo he incluido en este JSFiddle para reducir el tamaño de esta respuesta ya masiva. He usado Bootstrap 4 para reducir la cantidad necesaria y también para permitir que se ajuste a otros controles de Bootstrap y cualquier personalización del sitio que se haya realizado.
Las imágenes están configuradas en 75 píxeles, pero esto se puede cambiar fácilmente en 5 líneas
.rich-select
y.rich-select-option-body img
fuente
Tengo el mismo problema. Mi solución fue un foreach de botones de radio, con la imagen a la derecha. Como solo puede elegir una sola opción en la radio, funciona (como) una selección.
Worket bien para mí. Espero que pueda ayudar a alguien más.
fuente
<select>
no es necesariamente para seleccionar un valor únicoEsto está usando ms-Dropdown: https://github.com/marghoobsuleman/ms-Dropdown
El recurso de datos es json. Pero no necesitas usar json. Si quieres puedes usar con css.
Ejemplo de CSS: https://github.com/marghoobsuleman/ms-Dropdown/tree/master/examples
Ejemplo de Json: http://jsfiddle.net/tcibikci/w3rdhj4s/6
HTML
Guión
fuente
ACTUALIZACIÓN: A partir de 2018, esto parece funcionar ahora. Probado en Chrome, Firefox, IE y Edge
fuente