Font Awesome Text-Decoration and Link Underline

By  on  

If I were to describe Font Awesome in a word, I think it would be...awesome.  The icon font library is massively helpful in using quality vector glyphs instead of  separate images.  I tend to use a lot of icons within links, as they help users to more quickly visually identify navigation.  One side effect of using icons within links is that the icons themselves now use the text-decoration of the link.  I really don't want icons underlined like the link -- it looks tacky.  Here's how I remove them!

The CSS

Using the root icon selector and :before, we can adjust the icon's display and text-decoration:

i[class^="icon-"]:before {
	display: inline-block;
	text-decoration: none;
}

Needing this snippet to avoid text-decoration is a recent change as Font Awesome originally used the above styles.  Keep this CSS code handy if you use Font Awesome!

Recent Features

Incredible Demos

  • By
    Link Nudging with CSS3 Animations

    One of the more popular and simple effects I've featured on this blog over the past year has been linking nudging.  I've created this effect with three flavors of JavaScript:  MooTools, jQuery, and even the Dojo Toolkit.  Luckily CSS3 (almost) allows us to ditch...

  • By
    Full Width Textareas

    Working with textarea widths can be painful if you want the textarea to span 100% width.  Why painful?  Because if the textarea's containing element has padding, your "width:100%" textarea will likely stretch outside of the parent container -- a frustrating prospect to say the least.  Luckily...

Discussion

  1. Thanks for the snippet, I had the same issue and got to the same solution but was concerned about its performance.

    Anything you can say on this matter?

    • I can’t imagine this causing performance issues…

  2. Mircea

    Performance issues?

    p { color: #fff; } – my eight-core cpu is going full-load when renders this!

    WHAT A TWIST!

  3. Brandon

    Thanks for the tip. Here’s another similar service that’s amazing as well: http://icomoon.io/

  4. Does this still fix IE10? It’s broken for me. :(

  5. Stephen you might need to use

    i[class^="fa"]:before {
  6. Ah thanks! That one was driving me nuts. Didn’t think to try inline-block – i’ll get some more sleep tonight thanks to you :)

  7. nonsaprei

    Thanks, this trick worked for me even in 2020 with Font Awesome 5.

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!