Tôi đã tìm thấy một giải pháp, nhưng nó là mẹ của tất cả các vụ hack, hy vọng nó sẽ là điểm khởi đầu cho các giải pháp khác mạnh mẽ hơn. Nhược điểm (quá lớn theo ý kiến của tôi) là bất kỳ trình duyệt nào không hỗ trợ text-shadow
nhưng hỗ trợrgba
(IE 9) sẽ không hiển thị văn bản trừ khi bạn sử dụng một thư viện như Modernizr (không được kiểm tra, chỉ là lý thuyết).
Firefox sử dụng màu văn bản để xác định màu của đường viền chấm. Vì vậy, hãy nói nếu bạn làm ...
select {
color: rgba(0,0,0,0);
}
Firefox sẽ hiển thị đường viền chấm trong suốt. Nhưng tất nhiên văn bản của bạn cũng sẽ trong suốt! Vì vậy, bằng cách nào đó chúng ta phải hiển thị văn bản. text-shadow
đến để giải cứu:
select {
color: rgba(0,0,0,0);
text-shadow: 0 0 0 #000;
}
Chúng tôi đặt một bóng văn bản không có độ lệch và không bị mờ, để thay thế văn bản. Tất nhiên trình duyệt cũ hơn không hiểu bất kỳ điều gì về điều này, vì vậy chúng tôi phải cung cấp một bản dự phòng cho màu sắc:
select {
color: #000;
color: rgba(0,0,0,0);
text-shadow: 0 0 0 #000;
}
Đây là lúc IE9 phát huy tác dụng: nó hỗ trợ rgba
nhưng không hỗ trợ text-shadow, vì vậy bạn sẽ nhận được một hộp chọn trống. Tải phiên bản Modernizr của bạn với tính text-shadow
năng phát hiện và làm ...
.no-textshadow select {
color: #000;
}
Thưởng thức.