Я знайшов рішення, але це мати всіх хаків, сподіваємось, воно послужить відправною точкою для інших більш надійних рішень. Недоліком (занадто великим, на мій погляд) є те, що будь-який браузер, який не підтримує, text-shadowале підтримує rgba(IE 9), не відображатиме текст, якщо ви не використовуєте бібліотеку, таку як Modernizr (не перевірено, лише теорія).
Firefox використовує колір тексту для визначення кольору пунктирної межі. Так скажіть, якщо ви робите ...
select {
color: rgba(0,0,0,0);
}
Firefox зробить пунктирну межу прозорою. Але звичайно ваш текст теж буде прозорим! Тому ми повинні якось відображати текст. text-shadowна допомогу приходить:
select {
color: rgba(0,0,0,0);
text-shadow: 0 0 0 #000;
}
Ми ставимо тінь тексту без зміщення та розмиття, щоб вона замінила текст. Звичайно, старіший браузер нічого з цього не розуміє, тому ми повинні надати запасний варіант для кольору:
select {
color: #000;
color: rgba(0,0,0,0);
text-shadow: 0 0 0 #000;
}
Це коли IE9 вступає в гру: він підтримує, rgbaале не text-shadow, тому ви отримаєте, мабуть, порожнє поле вибору. Отримайте свою версію Modernizr із text-shadowвиявленням і зробіть ...
.no-textshadow select {
color: #000;
}
Насолоджуйтесь.