I pulled out your exact code in JSFiddle and noticed that the camera icon itself was not fully allocated, but there was a space between the icon and the text.
So, if this is what you are experiencing, you can just add a few extras after the icon , thus there is no underline for spaces.
a { color: red; text-decoration: none; } a:hover { text-decoration: underline; } .fa { padding-right: 5px; } a:hover .fa { color: blue; }
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet" /> <a href="#"><span class="fa fa-camera-retro"></span>This is a test</a>
The last element in CSS was simply to show that there was no underline effect on hover by changing the color of the icon to show that formatting is not applied to other elements. Note that there is no space after the span tag, instead, space is created by the 5px add-on, applied to anything with the .fa class.
I tested this both in the latest version of Firefox and in IE9, because this is what is on my working machine.
Mattd
source share