Removing dotted links
Fixing the Fox
Update: If you want to retain the dotted border for tab-based navigation, apply this to
a:active. This still allows the indicator to appear when focused by keyboard, but hides when mouse activated. It's the best of both worlds…
It is no secret, I love Firefox. I have been using it since the beta version of 0.8. Firefox 1.5 though, has a quirk that proves to be a minor irritation every time I use it. I am of course referring to the dotted outline that appears around every link. In versions previous to 1.5, the outline behaved similarly to Internet Explorer on Windows, wrapping exactly around clickable areas.
Now though, it wraps completely around links that have negative value applied to
text-indent. This method was popularized by Mike Rundle, and is widely used on many websites. Below is a screenshot of the link behavior on the 9rules Network homepage, as viewed in Firefox 1.5 on Windows. Oddly enough, Firefox on Mac does not have this incorrect outlining misbehavior.
If you dislike this quirk as much as I do, you're in luck. I will provide a few methods for squashing this bug as a web designer, and another tweak which will completely remove it from your browser's default behavior by editing the CSS that controls the user interface. First, let's look at web design tricks. In your CSS document, just start out by putting this universal rule for all links:
My coworker Cody Lindley has also come up with a solution to this problem, via specifically targeting Mozilla based browsers. His method involves universally targeting the
The great thing about using
outline: none; when designing is that other browsers that don't mis-interpret the dotted border aren't affected by it. IE6(Internet Explorer 6) still renders it, as does Firefox on Mac. Opera by default has no indicator.
CSS Validation is a big pet-peeve for me, which is why I opted to explore other options, and came up with the simple
outline: none; method. This is the same syntax that we will use to tweak our Firefox installation on Windows, so that the border is gone for all websites. Don't worry, it is a very simple solution. Browse to:
C:\Program Files\Mozilla Firefox\res\ua.css. Open the file in a code-editor that has line number, and scroll to line 123.
/* You Will See This: */
outline: 1px dotted invert;
/* Change It To This: */
Save the file and re-launch Firefox. That's it, you're done! Or, you can type
about:config, then go to
browser.display.focus_ring_width and set this value to 0. Thanks to Craig Erskine for bringing this to my attention.