Encontré una solución, pero es la madre de todos los trucos, con suerte servirá como punto de partida para otras soluciones más sólidas. La desventaja (demasiado grande en mi opinión) es que cualquier navegador que no admita text-shadow
pero admita rgba
(IE 9) no procesará el texto a menos que use una biblioteca como Modernizr (no probada, solo una teoría).
Firefox usa el color del texto para determinar el color del borde punteado. Así que di que si lo haces ...
select {
color: rgba(0,0,0,0);
}
Firefox hará que el borde punteado sea transparente. ¡Pero, por supuesto, su texto también será transparente! Entonces, de alguna manera debemos mostrar el texto. text-shadow
viene al rescate:
select {
color: rgba(0,0,0,0);
text-shadow: 0 0 0 #000;
}
Ponemos una sombra de texto sin desplazamiento y sin desenfoque, para que reemplace el texto. Por supuesto, los navegadores más antiguos no entienden nada de esto, por lo que debemos proporcionar una alternativa para el color:
select {
color: #000;
color: rgba(0,0,0,0);
text-shadow: 0 0 0 #000;
}
Aquí es cuando entra en juego IE9: admite rgba
pero no text-shadow, por lo que obtendrá un cuadro de selección aparentemente vacío. Obtén tu versión de Modernizr con text-shadow
detección y haz ...
.no-textshadow select {
color: #000;
}
Disfrutar.