Eu tenho uma caixa de seleção HTML que preciso estilizar. Eu preferiria usar apenas CSS, mas se for necessário, usarei o jQuery para preencher as lacunas.
Alguém pode recomendar um bom tutorial ou plugin?
Eu sei, Google, mas tenho procurado nas últimas duas horas e não estou encontrando nada que atenda às minhas necessidades.
Precisa ser:
- Compatível com jQuery 1.3.2
- Acessível
- Discreto
- Completamente personalizável em termos de estilo para todos os aspectos de uma caixa de seleção
Alguém sabe alguma coisa que atenda às minhas necessidades?
jquery
css
html-select
Apoorv Khurasia
fonte
fonte
select
elementos entre navegadores. Mas se as pessoas estão dispostas a conviver com as diferenças, você pode estilizá-las - incluindo as fronteiras.Respostas:
Eu já vi alguns plugins jQuery por aí que convertem
<select>
para<ol>
s e<option>
para<li>
s, para que você possa estilizá-lo com CSS. Não poderia ser muito difícil de criar.Aqui está um: https://gist.github.com/1139558 (costumava estar aqui , mas parece que o site está fora do ar).
Use-o assim:
Denomine-o assim:
fonte
Atualização: A partir de 2013, as duas que vi que valem a pena conferir são:
sim!
Desde 2012, uma das soluções mais leves e flexíveis que encontrei é o ddSlick . Informações relevantes (editadas) do site:
select options
E aqui está uma prévia dos vários modos:
fonte
Quanto ao CSS, o Mozilla parece ser o mais amigável, especialmente do FF 3.5+. Os navegadores Webkit geralmente fazem suas próprias coisas e ignoram qualquer estilo. O IE é muito limitado, embora o IE8 permita pelo menos estilizar a cor / largura da borda.
Na verdade, o seguinte parece bastante bom no FF 3.5+ (escolhendo sua preferência de cor, é claro):
Mas, quando se trata do IE, é necessário desativar a cor de fundo da opção, se você não deseja que ela seja exibida quando o menu de opções não for puxado para baixo. E, como eu disse, o webkit faz suas próprias coisas.
fonte
Encontramos uma maneira simples e decente de fazer isso. É cross-browser, degradável e não quebra uma publicação de formulário. Primeiro, defina a opacidade da caixa de seleção como 0.
isso é para que você ainda possa clicar nele
Em seguida, faça div com as mesmas dimensões da caixa de seleção. A div deve estar sob a caixa de seleção como plano de fundo. Use {position: absolute} e z-index para conseguir isso.
Atualize o innerHTML da div com javascript. Fácil com jQuery:
É isso aí! Apenas estilize sua div em vez da caixa de seleção. Como não testei o código acima, você provavelmente precisará ajustá-lo. Mas espero que você entenda a essência.
Eu acho que essa solução supera {-webkit-aparecimento: nenhum;}. O que os navegadores devem fazer no máximo é ditar a interação com os elementos do formulário, mas definitivamente não a forma como eles são exibidos inicialmente na página, pois isso quebra o design do site.
fonte
Aqui está uma pequena ficha, se você quiser
select
elementooptions
, zindex adequado etc.)ul
eli
geradasEntão jquery.yaselect.js poderia ser um ajuste melhor . Simplesmente:
E a marcação final é:
Confira no github.com
fonte
Você pode criar algum estilo com o CSS sozinho
Mas isso depende inteiramente do navegador. Alguns navegadores são teimosos.
No entanto, isso só o levará até agora e nem sempre parece muito bom. Para um controle completo, você precisará substituir uma seleção via jQuery por um widget que simule a funcionalidade de uma caixa de seleção. Certifique-se de que, quando o JS estiver desativado, uma caixa de seleção normal esteja em seu lugar. Isso permite que mais usuários usem seu formulário e ajuda na acessibilidade.
fonte
A maioria dos navegadores não suporta a personalização da tag select usando css. Mas acho esse javascript que pode ser usado para estilizar a tag select. Mas, como de costume, não há suporte para navegadores IE.
http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/ Observei um erro nesse atributo que o atributo Onchange não funcionava
fonte
Acabei de encontrar isso que parece realmente bom.
http://www.dfc-e.com/metiers/multimedia/opensource/jqtransform/
fonte
Se tiver uma solução sem jQuery. Um link onde você pode ver um exemplo de trabalho: http://www.letmaier.com/_selectbox/select_general_code.html (estilizado com mais css)
A seção de estilo da minha solução:
Agora, o código HTML dentro da tag body:
fonte
Atualizado para 2014: você não precisa do jQuery para isso . É possível estilizar totalmente uma caixa de seleção sem o jQuery usando o StyleSelect . Por exemplo, dada a seguinte caixa de seleção:
A execução
styleSelect('select.demo')
criaria uma caixa de seleção com estilo da seguinte maneira:fonte
Eu criei o plugin jQuery, SelectBoxIt , alguns dias atrás. Ele tenta imitar o comportamento de uma caixa de seleção HTML normal, mas também permite estilizar e animar a caixa de seleção usando o jQueryUI. Dê uma olhada e deixe-me saber o que você pensa.
http://www.selectboxit.com
fonte
Você deve tentar usar algum plugin jQuery como o ikSelect .
Tentei torná-lo muito personalizável, mas fácil de usar.
http://github.com/Igor10k/ikSelect
fonte
Parece antigo, mas aqui um plugin muito interessante - http://uniformjs.com
fonte
este sobre os usos, os
twitter-bootstrap
estilos para transformarselect
emdropdown
Menu https://github.com/silviomoreto/bootstrap-selectfonte
A solução simples é deformar sua caixa de seleção dentro de uma div e modelar a div correspondente ao seu design. Defina opacidade: 0 para selecionar a caixa, ela ficará invisível. Insira uma tag de extensão com jQuery e altere seu valor dinamicamente se o usuário alterar o valor suspenso. Demonstração total mostrada neste tutorial com explicação de código. Espero que isso resolva seu problema.
O código JQuery se parece com isso.
fonte