Encontrei uma solução, mas é a mãe de todos os hacks, espero que sirva como ponto de partida para outras soluções mais robustas. A desvantagem (grande demais na minha opinião) é que qualquer navegador que não suporte, text-shadow
mas suporte rgba
(IE 9) não renderizará o texto a menos que você use uma biblioteca como a Modernizr (não testada, apenas uma teoria).
O Firefox usa a cor do texto para determinar a cor da borda pontilhada. Então diga se você faz ...
select {
color: rgba(0,0,0,0);
}
O Firefox tornará a borda pontilhada transparente. Mas é claro que seu texto também será transparente! Portanto, devemos de alguma forma exibir o texto. text-shadow
vem ao resgate:
select {
color: rgba(0,0,0,0);
text-shadow: 0 0 0 #000;
}
Colocamos uma sombra de texto sem deslocamento e sem desfoque, de modo que substitui o texto. É claro que os navegadores mais antigos não entendem nada disso, então devemos fornecer um substituto para a cor:
select {
color: #000;
color: rgba(0,0,0,0);
text-shadow: 0 0 0 #000;
}
É quando o IE9 entra em ação: ele suporta, rgba
mas não a sombra de texto, portanto, você obterá uma caixa de seleção aparentemente vazia. Obtenha sua versão do Modernizr com text-shadow
detecção e faça ...
.no-textshadow select {
color: #000;
}
Aproveitar.