Ho trovato una soluzione, ma è la madre di tutti gli hack, spero servirà come punto di partenza per altre soluzioni più robuste. Lo svantaggio (troppo grande secondo me) è che qualsiasi browser che non supporta text-shadow
ma supporta rgba
(IE 9) non visualizzerà il testo a meno che non si utilizzi una libreria come Modernizr (non testata, solo una teoria).
Firefox utilizza il colore del testo per determinare il colore del bordo tratteggiato. Quindi dì se lo fai ...
select {
color: rgba(0,0,0,0);
}
Firefox renderà trasparente il bordo tratteggiato. Ma ovviamente anche il tuo testo sarà trasparente! Quindi dobbiamo in qualche modo visualizzare il testo. text-shadow
viene in soccorso:
select {
color: rgba(0,0,0,0);
text-shadow: 0 0 0 #000;
}
Inseriamo un'ombra del testo senza offset e senza sfocatura, in modo che sostituisca il testo. Ovviamente il browser più vecchio non ne capisce nulla, quindi dobbiamo fornire un fallback per il colore:
select {
color: #000;
color: rgba(0,0,0,0);
text-shadow: 0 0 0 #000;
}
Questo è quando IE9 entra in gioco: supporta rgba
ma non l'ombra del testo, quindi otterrai una casella di selezione apparentemente vuota. Ottieni la tua versione di Modernizr con text-shadow
rilevamento e fai ...
.no-textshadow select {
color: #000;
}
Godere.