เป็นไปได้หรือไม่ที่จะบังคับให้เพิกเฉยต่อ: hover pseudoclass สำหรับผู้ใช้ iPhone / iPad
ฉันมีเมนู css บนไซต์ของฉันที่ขยายด้วย:hover(ไม่มี js) วิธีนี้ใช้งานได้ในลักษณะกึ่งเสียบน iDevices เช่นการแตะจะเปิดใช้งาน:hoverกฎและขยายเมนู แต่การแตะที่อื่นจะไม่ลบไฟล์:hover. นอกจากนี้หากมีลิงก์ภายในองค์ประกอบที่เป็น:hover'ed คุณต้องแตะสองครั้งเพื่อเปิดใช้งานลิงก์ (ทริกเกอร์การแตะครั้งแรก:hover, การแตะครั้งที่สองที่เรียกลิงก์) ฉันสามารถทำให้สิ่งต่างๆทำงานได้ดีบน iPhone โดยการผูกtouchstartเหตุการณ์ ปัญหาคือบางครั้ง mobile safari ยังคงเลือกที่จะเรียกใช้:hoverกฎจาก css แทนที่จะเป็นtouchstartเหตุการณ์ของฉัน! ฉันรู้ว่านี่เป็นปัญหาเพราะเมื่อฉันปิดใช้งาน:hoverกฎทั้งหมดด้วยตนเองใน css ซาฟารีมือถือใช้งานได้ดี (แต่เบราว์เซอร์ทั่วไปไม่เห็นได้ชัดอีกต่อไป) มีวิธี "ยกเลิก" :hoverกฎแบบไดนามิกสำหรับองค์ประกอบบางอย่างเมื่อผู้ใช้อยู่ในซาฟารีมือถือหรือไม่ ดูและเปรียบเทียบพฤติกรรมของ iOS ที่นี่: http://jsfiddle.net/74s35/3/ หมายเหตุ: มีเพียงคุณสมบัติ css บางอย่างเท่านั้นที่ทำให้เกิดพฤติกรรมการคลิกสองครั้งเช่น display: none; แต่ไม่ใช่พื้นหลัง: สีแดง; หรือตกแต่งข้อความ: ขีดเส้นใต้;