开发者

<a> with :hover or <div> with hover event for buttons?

I'm usually using an <a> to make block type buttons for example:

a
{
    color:#fff;
    display:block;
    background-color:#ff0000;
}

a:hover
{
    background-color:#c80000;
}

Then I put href="javascript:void(0);" on the <a> tag. I'm doing thi开发者_运维问答s because :hover on a div element is not good for backwards compatibility. This being said I was thinking originally to use as little JavaScript as possible but I'm starting to think doing this approach is not a great thing?

What would you guys use?

EDIT: I only bring this up because I noticed that Google+ was using for some of their buttons.

EDIT #2: I also noticed on Google+ they have a slight animation on their buttons, so maybe that's why they are using 's


div:hover will work on all browsers except Internet Explorer 6. But that browser is more than 10 years old.

The only downside of using div:hover in IE6 is that they won't get the hover effect, but they can still use (click) the button. So it won't break in IE6, just look a little bit different than in other browsers.


Use the div + jQuery IMO

$('.myDivClass').hover(
    function(){
        $(this).css('background-color','#c80000');
    }, function(){
        $(this).css('background-color','#ff0000');
});


You could just do <a href='#' onclick='return false;'>. (Thanks commenters!)

You shouldn't feel constrained to use 'as little javascript as possible', but also I don't think javascript is necessary for this particular bit.

EDIT: in case I didn't answer your question directly, I don't think there's anything wrong with using <a>, <input>, or <button>, but I'd stay away from <div> if possible if only because it is not as semantically specific.


I would recommend you use a div. Unless you need to go back to, say, IE 5-6 then it shouldn't be an issue.


Use whatever html element is semantically correct. If you are making buttons, why not use <button>?


I use <a>'s quite often for this, actually. Every browser works with them, and it's usually just easier that way. Why use a div when you don't need to?


Using anchor gives your user ability to right-click on it and open link in another tab. Also if you want for search engines to follow links I'd leave 'a'. I usually use 'div' in case where it is dynamic behavior meaning its not simple redirect to different URL but some AJAX or DOM altering action.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜