Eu tenho uma lista selecionada de sexos.
Código:
<select>
<option>male</option>
<option>female</option>
<option>others</option>
</select>
Quero usar uma imagem na lista suspensa como drop-down-icon.jpeg.
Quero adicionar um botão no lugar do ícone suspenso.
Como fazer isso?
<option>
s; suportado por tudo, desde o IE 8.0, pequeno e simples.Respostas:
No Firefox, você pode adicionar uma imagem de fundo à opção:
Melhor ainda, você pode separar HTML e CSS assim
HTML
CSS
Em outros navegadores, a única maneira de fazer isso seria usar alguma biblioteca de widgets JS, como, por exemplo, jQuery UI , por exemplo, usando Selectable .
No jQuery UI 1.11, o widget Selectmenu está disponível, muito próximo ao desejado.
fonte
Minha solução é usar o FontAwesome e adicionar imagens da biblioteca como texto! Você só precisa dos Unicodes e eles podem ser encontrados aqui: FontAwesome Reference File forUnicodes
Aqui está um exemplo de filtro de estado:
fonte
Você pode usar o iconselect.js; Seleção de ícone / imagem (caixa de combinação, lista suspensa)
Demo e download; http://bug7a.github.io/iconselect.js/
Uso de HTML;
Uso de Javascript;
fonte
<!doctype html>
definido.Você já tem várias respostas que sugerem o uso de JavaScript / jQuery. Vou adicionar uma alternativa que usa apenas HTML e CSS sem JS.
A idéia básica é usar um conjunto de botões de opção e rótulos (que ativam / desativam os botões de opção) e, com o controle CSS, apenas a etiqueta associada ao botão de opção selecionado será exibida. Se você deseja permitir a seleção de vários valores, pode obtê-lo usando caixas de seleção em vez de botões de opção.
Aqui está um exemplo. O código pode ser um pouco mais confuso (especialmente em comparação com as outras soluções):
fonte
Outra solução entre navegadores jQuery para esse problema é http://designwithpc.com/Plugins/ddSlick, que é feita exatamente para esse uso.
fonte
$(...).ddslick
não é uma função no console do FirefoxCom países, idiomas ou moeda, você pode usar emojis.
Funciona com praticamente todos os navegadores / sistemas operacionais que suportam o uso de emojis.
fonte
Para uma imagem de duas cores, você pode usar o Fontello e importar qualquer glifo personalizado que deseja usar. Faça sua imagem no Illustrator, salve no SVG e solte-a no site Fontello e faça o download da fonte personalizada pronta para importar. Sem JavaScript!
fonte
Tentei várias seleções personalizadas baseadas em jquery com imagens, mas nenhuma funcionou em layouts responsivos. Finalmente eu vim através do Bootstrap-Select. Após algumas modificações, consegui produzir esse código.
Código e repositório do github aqui
fonte
Para aqueles que desejam exibir um ícone e aceitar uma solução "preto e branco", uma possibilidade é usar entidades de caracteres:
Por extensão, seus ícones podem ser armazenados em uma fonte personalizada. Aqui está um exemplo usando a fonte FontAwesome : https://jsfiddle.net/14606fv9/2/ https://jsfiddle.net/14606fv9/2/
Um benefício é que ele não requer Javascript. No entanto, preste atenção que o carregamento da fonte completa não diminui o carregamento da sua página.
Nota bene: A solução do uso de uma imagem de plano de fundo não parece mais funcionar no Firefox (pelo menos na versão 57 "Quantum"):
fonte
Resposta gratuita do Alvaros JS foi um grande começo para mim, e eu realmente tentei obter uma resposta verdadeiramente livre de JS que ainda fornecia toda a funcionalidade esperada de um Select com imagens, mas, infelizmente, aninhar formulários foi a queda. Estou postando duas soluções aqui; minha solução principal que usa 1 linha de JavaScript e uma solução totalmente livre de JavaScript que não funcionará em outro formulário, mas pode ser útil para os menus de navegação.
Infelizmente, há um pouco de repetição no código, mas quando você pensa sobre o que um Select faz, faz sentido. Quando você clica em uma opção, ele copia esse texto para a área selecionada, ou seja, clicar em 1 das 4 opções não altera as 4 opções, mas a parte superior agora repete a que você clicou. Para fazer isso com imagens, seria necessário JavaScript, orrrr ... você duplica as entradas.
No meu exemplo, temos uma lista de jogos (produtos), que têm versões. Cada produto também pode ter expansões, que também podem ter versões. Para cada produto, fornecemos ao usuário uma lista de cada versão, se houver mais de uma, juntamente com um texto específico da imagem e da versão.
Usando JS para desmarcar a caixa de seleção, podemos ter várias instâncias em um formulário. Aqui estendi para mostrar uma lista de expansões, que também têm a mesma lógica nas versões.
É claro que isso requer um pouco de CSS, que eu incluí apenas neste JSFiddle para reduzir o tamanho dessa resposta já massiva. Usei o Bootstrap 4 para reduzir a quantidade necessária e também para permitir que ele se encaixe em outros controles do Bootstrap e em qualquer personalização do site que tenha sido feita.
As imagens estão definidas para 75px, mas isso pode ser facilmente alterado em 5 linhas
.rich-select
e.rich-select-option-body img
fonte
Eu tenho o mesmo problema. Minha solução foi um foreach de botões de opção, com a imagem à direita. Como você só pode escolher uma opção no rádio, funciona (como) uma seleção.
Worket bem para mim. Espero que possa ajudar outra pessoa.
fonte
<select>
não é necessariamente para a seleção de um único valorIsso está usando o ms-Dropdown: https://github.com/marghoobsuleman/ms-Dropdown
O recurso de dados é json. Mas você não precisa usar o json. Se você quiser, pode usar com css.
Exemplo de CSS: https://github.com/marghoobsuleman/ms-Dropdown/tree/master/examples
Exemplo Json: http://jsfiddle.net/tcibikci/w3rdhj4s/6
HTML
Roteiro
fonte
ATUALIZAÇÃO: A partir de 2018, isso parece funcionar agora. Testado no Chrome, Firefox, IE e Edge
fonte