ฉันพบวิธีแก้ปัญหา แต่มันเป็นแม่ของแฮ็กทั้งหมดหวังว่ามันจะเป็นจุดเริ่มต้นสำหรับโซลูชันที่มีประสิทธิภาพอื่น ๆ ข้อเสีย (ใหญ่เกินไปในความคิดของฉัน) คือเบราว์เซอร์ใด ๆ ที่ไม่รองรับ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;
}
สนุก.