[英]<a> with :hover or <div> with hover event for buttons?
我通常使用<a>
来制作块类型按钮,例如:
a
{
color:#fff;
display:block;
background-color:#ff0000;
}
a:hover
{
background-color:#c80000;
}
然后我把href="javascript:void(0);"
在<a>
标记上。 我这样做是因为div
元素上的:hover
不利于向后兼容。 话虽这么说,我本来是想尽可能少地使用JavaScript,但我开始认为采用这种方法不是一件好事吗?
你们会用什么?
编辑:我只是提出来,因为我注意到Google+的某些按钮正在使用。
编辑#2:我还注意到在Google+上按钮上有一个轻微的动画,所以也许这就是为什么他们使用的
div:hover可以在Internet Explorer 6以外的所有浏览器上运行。但是该浏览器已有10多年的历史了。
在IE6中使用div:hover的唯一缺点是它们不会获得悬停效果,但是他们仍然可以使用(单击)按钮。 因此它不会在IE6中中断,只是看起来与其他浏览器有些不同。
您可以执行<a href='#' onclick='return false;'>
。 (感谢评论者!)
您不应该限制使用“尽可能少的javascript”,但我也不认为javascript对于此特定位是不必要的。
编辑:如果我没有直接回答您的问题,我认为使用<a>
, <input>
或<button>
并没有什么问题,但如果可能的话,我会尽量远离<div>
因为它不是语义上特定的。
使用div + jQuery IMO
$('.myDivClass').hover(
function(){
$(this).css('background-color','#c80000');
}, function(){
$(this).css('background-color','#ff0000');
});
我建议您使用div。 除非您需要返回到IE 5-6,否则这不是问题。
使用任何在语义上正确的html元素。 如果要制作按钮,为什么不使用<button>
呢?
实际上,我经常使用<a>
。 每个浏览器都可以使用它们,通常这样更容易。 为什么在不需要时使用div?
使用锚点使您的用户能够右键单击它并在另一个选项卡中打开链接。 另外,如果您想让搜索引擎跟随链接,我将保留“ a”。 我通常会在动态行为的情况下使用“ div”,这意味着它不是简单地重定向到其他URL,而是一些AJAX或DOM更改操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.