Znalazłem rozwiązanie, ale jest ono matką wszystkich hacków, mam nadzieję, że będzie ono służyć jako punkt wyjścia dla innych, bardziej niezawodnych rozwiązań. Wadą (moim zdaniem zbyt duża) jest to, że każda przeglądarka, która nie obsługuje text-shadow
, ale obsługuje rgba
(IE 9), nie wyrenderuje tekstu, chyba że użyjesz biblioteki takiej jak Modernizr (nie testowanej, tylko teoria).
Firefox używa koloru tekstu do określenia koloru przerywanej granicy. Powiedzmy, że ...
select {
color: rgba(0,0,0,0);
}
Firefox spowoduje, że przerywana ramka stanie się przezroczysta. Ale oczywiście twój tekst również będzie przezroczysty! Musimy więc jakoś wyświetlić tekst. text-shadow
przychodzi na ratunek:
select {
color: rgba(0,0,0,0);
text-shadow: 0 0 0 #000;
}
Kładziemy cień tekstu bez offsetu i bez rozmycia, dzięki czemu zastępuje tekst. Oczywiście starsza przeglądarka nie rozumiem nic z tego, więc musimy zapewnić zabezpieczenie dla koloru:
select {
color: #000;
color: rgba(0,0,0,0);
text-shadow: 0 0 0 #000;
}
To kiedy IE9 wchodzi w grę: obsługuje rgba
ale nie text-shadow, więc dostaniesz pozornie puste pole wyboru. Pobierz wersję modernizr z text-shadow
wykrywania i zrobić ...
.no-textshadow select {
color: #000;
}
Enjoy.
trzy miesiące temu szukałem to samo, ale z przyciskiem radiowym. Ponad pięć lub sześć różnych rozwiązań, które znalazłem, nic nie działało. Podejrzewam, że nie możesz tego zrobić. Mam nadzieję, że się mylę. –
Obawiam się, że to jest również fakt, ale wciąż mam nadzieję, że zostanie udowodniony błąd: D – Martin
Czy w Mozilli żyją ludzie, którzy uważają, że ta głupia linia przerywana wygląda dobrze? Dlaczego jest to nawet coś, co musimy usunąć? – billynoah