: hover but: not on a specific class


89

ฉันจะใช้ผลเลื่อนบนaองค์ประกอบ แต่ไม่ได้ไปยังaองค์ประกอบกับการเรียนactive?

a:hover(not: .active)

ดูเหมือนว่ามีบางอย่างหายไป

คำตอบ:


178

สัญกรณ์การทำงานเปิดอยู่:not()ไม่ใช่:hover:

a:not(.active):hover

หากคุณต้องการใส่:hoverก่อนก็ไม่เป็นไร:

a:hover:not(.active)

ไม่สำคัญว่าคลาสหลอกใดจะมาก่อนหรือสุดท้าย ทั้งสองวิธีตัวเลือกจะทำงานเหมือนกัน มันเป็นเพียงการประชุมส่วนตัวของฉันที่จะทำให้:hoverเป็นครั้งสุดท้ายเนื่องจากฉันมักจะวางคลาสหลอกการโต้ตอบกับผู้ใช้ไว้ด้านหลังคลาสหลอกเชิงโครงสร้าง


1
ระวังถ้าคุณต้องการที่จะสนับสนุน IE ก่อนรุ่นที่ 9 แต่เป็นพวกเขาดูเหมือนจะไม่สนับสนุนmsdn.microsoft.com/en-us/library/...not() บางทีดูคำตอบโดย @Mendhak ถ้าคุณทำ
SharpC

7

คุณมีตัวเลือกในการใช้not()ตัวเลือก

a:not(.active):hover { ... }

อย่างไรก็ตามสิ่งนี้อาจใช้ไม่ได้กับทุกเบราว์เซอร์เนื่องจากบางเบราว์เซอร์ไม่ได้ใช้คุณสมบัติ CSS3

หากคุณกำหนดเป้าหมายผู้ชมจำนวนมากและต้องการให้การสนับสนุนเบราว์เซอร์รุ่นเก่าวิธีที่ดีที่สุดที่จะกำหนดรูปแบบสำหรับและเลิกทำสิ่งที่คุณกำลังทำอยู่ใน.active:hovera:hover

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.