One of the things I most often get asked by people trying to master HTML and CSS is “How do I make a background image clickable?” It’s easy to wrap a regular image tag in a link, but what if your design or situation required that you use a background image? It’s actually quite simple. Just follow these steps and I’ll show you how to make a clickable background image like this:
Start with just a link exactly as you would make it for any other purpose, and make sure to give the link an id so that we can use that to apply our styles:
1 | < a href = "http://problemfacing.blogspot.com/" title = "ASP.NET Problem Solution" id = "xavisys-logo" >ASP.NET Problem Solution</ a > |
That’s all the (X)HTML you’ll need to make your background image clickable. Your link should look something like this: Asp.net Problem Solution
So, how can we make a background image a clickable link? It turns out it can be done with a clever CSS trick. Let’s get started by adding the background image and make the link the same size as the image (so you can see the whole image). Since an anchor tag isn’t a block level element, we need to force it to display as “block” so that we can specify the size:
1 2 3 4 5 6 | #xavisys-logo { background-image : url (/wp-content/uploads/ 2009 / 11 /email_logo.gif); display : block ; height : 58px ; width : 200px ; } |
At this point it should look something like this:problemfacing.blogspot.com
Now all we need to do is hide the text. This can be done using “text-indent” and indenting the text completely off the screen like this:
1 2 3 4 5 6 7 | #xavisys-logo { background-image : url (/wp-content/uploads/ 2009 / 11 /email_logo.gif); display : block ; height : 58px ; text-indent : -9999px ; width : 200px ; } |
And the finished product looks like this:problemfacing.blogspot.com
And there you have it – a quick CSS trick with clean markup that turns your background images into clickable links. The best thing is, these don’t adversely affect your SEO and can even be easily used inside of header tags if needed!
Comments
Post a Comment