มีหลายครั้งที่ฉันมีตัวเลือกระหว่างการใช้องค์ประกอบ CSS: hover หรือ JavaScript onmouseover เพื่อควบคุมลักษณะที่ปรากฏขององค์ประกอบ html บนหน้า พิจารณาสถานการณ์ต่อไปนี้ที่ div ห่ออินพุต
<div>
<input id="input">
</div>
ฉันต้องการให้อินพุตเปลี่ยนสีพื้นหลังเมื่อเคอร์เซอร์ของเมาส์วางเมาส์เหนือ div แนวทาง CSS คือ
<style>
input {background-color:White;}
div:hover input {background-color:Blue;}
</style>
<div><input></div>
วิธีการของ JavaScript คือ
<div onmouseover="document.getElementById('input').style.backgroundColor='Blue';">
<input id="input">
</div>
แต่ละแนวทางมีข้อดีข้อเสียอย่างไร? แนวทาง CSS ทำงานได้ดีกับเว็บเบราว์เซอร์ส่วนใหญ่หรือไม่? JavaScript ช้ากว่า css หรือไม่