CSS Trick: Remove borders from linked images
👉 Whoa! Please note that this post is 15 years old. The views expressed within might have become outdated.
Here's a nice little CSS trick I cooked up today when talking to @heliumworkx.
You know how you sometimes use border-bottom
to style links? Then you must be familiar with situations where there's an image inside a link on which the border looks really stupid. Unfortunately there's no CSS selector that targets links containing an img
element, so a sprinkle of magic is needed in order to hide the border.
It’s a tiny sprinkle, really. Lookit;
a img {
position: relative;
top: 5px;
margin-top: -5px;
border: 0;
}
That’s it! First of all, the border: 0;
line removes the border browsers put on linked images by default. The real trick is in the positioning.
By pushing the image down 5 pixels, using the position
and top
properties, the image effectively masks the parent link’s border.
However, this also means your image is placed 5 pixels below anything that it would usually be neatly aligned with. That’s where margin-top
comes in. The negative value of -5px
pulls the image and the containing links 5 pixels up again, putting it back in its original place.
Easy, eh? Check the example here if you wish to see some real source code.