有时候,我可以选择使用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方法在大多数web浏览器上都能很好地工作吗?JavaScript比css慢吗?
发布于 2009-03-04 00:18:18
hover的问题是IE6只在链接上支持它。这些天我使用jQuery来做这类事情:
$("div input").hover(function() {
$(this).addClass("blue");
}, function() {
$(this).removeClass("blue");
});
让事情变得简单多了。这将适用于IE6,FF,Chrome和Safari。
发布于 2009-03-04 00:17:46
CSS one更具可维护性和可读性。
发布于 2010-04-28 04:20:08
在javascript中这样做的另一个好处是你可以在不同的时间点添加/删除悬停效果-例如,将鼠标悬停在表行上会改变颜色,单击会禁用悬停效果并开始原地编辑模式。
https://stackoverflow.com/questions/608788
复制相似问题