Images have a default border, which disappears only when the image is loaded. This image comes from the src attribute of the image. If src is not set, then the image will not be loaded, and the border will be there forever - your case is for sure.
The normal img tag is as follows:
<img src="/something.jpg" />
yours looks like this:
<img />
You add your image via css background-image. Not the way it should be done. You can add a background image, but this is usually for other purposes. (check towards the bottom).
Try removing the background image and putting the image location in the src attribute of the image. Like this:
<img class="next" src="/share.png" />
Now you will see that the image has no border.
In addition When the background image is added to the img element, it usually should contain a placeholder image if img src not set. Think of avatars in the blog comments section.
And When creating a sprite, you can use div p em , etc. Remember that background-image can be applied to any element!
source share