Я знайшов рішення, але це мати всіх хаків, сподіваємось, воно послужить відправною точкою для інших більш надійних рішень. Недоліком (занадто великим, на мій погляд) є те, що будь-який браузер, який не підтримує, 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;
}
Насолоджуйтесь.