Which strategy is better to make image buttons?

Using <a>: set background image to my image need to specify <a href="#">, however, you will see a url in browser status bar, that is a little annoying.

Using <div>: set background image to my image no url shows in browser status bar, however, need to add cursor:pointer inscascading stylesheet

I would not get a div personally, because semantically a div isn't a button. If you prefer a button that works a JavaScript action, I'd most likely only use the <button></button> tag. You can put other HTML elements in the button tag while you would a div, and it is better semantically.

To reiterate what @Richard JP Le Guen stated, ideally you'd add these buttons using JavaScript too, to ensure that men and women without JavaScript enabled won't discover their whereabouts, or present an alternative functionality for individuals without JS enabled.

I favor using <a> since the browser natively handles the press occasions. A clickable <div> would require javascript to deal with click occasions.

Showing the destination url within the status bar is generally considered a great design practice. It provides the user added information where that button/link will require them.

Make use of the second technique anchors (<a>) are for hyperlinks. Utilizing an anchor for dynamic behavior affects the browser status bar (as if you stated) as well as gives customers without JavaScript the sense they are able to communicate with the element - that they can't.

Ideally you'd include this <div> using JavaScript, to ensure that customers without any JavaScript do not have to view it whatsoever.

Stan! There are CSS files with 1000's lines of code. This is exactly why yet another rule "cursor:pointer" isn't a large problem. :)