45

Active hyperlink texts are highlighted with dotted border. When using effects on such hyperlinks (fadeIn/fadeOut) it produces strange effects. How do I disable/remove the dotted border?

Jørn Schou-Rode
  • 37,718
  • 15
  • 88
  • 122
glaz666
  • 8,707
  • 19
  • 56
  • 75

12 Answers12

59

Try this CSS:

a:active, a:selected, a:visited { 
    border: none;
    outline: none;
}

Note that this has to be after any a:hover rules. Thanks to PEra in the comments for suggesting using the a:selected selector as well.

NOTE

The above does not work in IE 9. Removing a:selected causes it to work in IE9.

Community
  • 1
  • 1
Lucas Jones
  • 19,767
  • 8
  • 75
  • 88
33

Typical and safe way to do it is this:

a:active, a:focus {
   outline:  none; /* non-IE */
   ie-dummy: expression(this.hideFocus=true); /* IE6-7 */
}

Since expresssion() has been gutted in IE8, you may need a script:

if (document.documentElement.attachEvent)
    document.documentElement.attachEvent('onmousedown',function(){
         event.srcElement.hideFocus=true
    });

If you're going to remove the default focus outline, you must define your own distinct style for :focus, otherwise keyboard users will have a hard time using your site.

Kornel
  • 97,764
  • 37
  • 219
  • 309
15

Be careful. The dotted-border is a valuable part of keyboard-browsing. It highlights which link will be clicked.

a:active { outline: none; }

Author Nathan Smith gives a more thorough discussion of this, and various related issues on his blog.

Sampson
  • 265,109
  • 74
  • 539
  • 565
12
a:active, a:focus {
    outline:none;
}
CoolBeans
  • 20,654
  • 10
  • 86
  • 101
Frankie Jarrett
  • 494
  • 7
  • 11
  • 1
    Welcome to SO! Please try to be a little more explicit in yours answers. It is perftly correct, but lake of a bit of information. Also you can use the format function for code. and again, welcome to SO ! – Loda Jun 03 '11 at 08:58
10

Try with this CSS:

For Mozilla:

|:-moz-any-link:focus { outline: none; }

|:focus { outline: none; }

button, input[type="reset"], input[type="button"], input[type="submit"] { outline: none; }

button::-moz-focus-inner, input[type="reset"]::-moz-focus-inner, input[type="button"]::-moz-focus-inner, input[type="submit"]::-moz-focus-inner, input[type="file"] > input[type="button"]::-moz-focus-inner { padding: 0px 2px 0px 2px; border: 1px dotted transparent; }

For IE8:

a:active, a:focus { 
    border:none;
    outline:none;
}
Jason Plank
  • 2,336
  • 5
  • 31
  • 40
Ana
  • 101
  • 1
  • 3
3

The a { outline: none; } breaks keyboard usability. And the a:active {} selector seems to break it just as good last time I checked in Firefox.

There is a JS way to get rid of the border without breaking anything, as well as JS code to get rid of the border in IE6 and IE7.

I described the method in my tutorial.

Jason Plank
  • 2,336
  • 5
  • 31
  • 40
3

Solution in JavaScript to remove the active border on the links on all the browsers: add the event onfocus="this.blur();" on your link

<a href="#" onfocus="this.blur()"> Link </a>

NOTE: this will work in all browsers.

2
a:focus, *:focus {
    noFocusLine: expression(this.onFocus=this.blur());
}

Taken from here: http://www.cssjunction.com/css/remove-dotted-border-in-ie7/

nhahtdh
  • 55,989
  • 15
  • 126
  • 162
eva
  • 29
  • 1
2

This one works the best for me

a{
  outline: 0;
}
Tosh
  • 1,789
  • 15
  • 20
1

i wanted to get this working for Button and this worked for me

button { 

    border-top-style: none;
    border-right-style: none;
    border-bottom-style: none;
    border-left-style: none;    
    background-color: transparent;
    noFocusLine: expression(this.onFocus=this.blur());
}
AbcAeffchen
  • 14,400
  • 15
  • 47
  • 66
0

you can also use outline:0 on object and embed. some basic zeroing out css would look like this:

a, a:visited { 
    text-decoration:none;
    color: #e3a512; 
    }
a:hover, a:active, a:focus { 
    text-decoration:none;
    color: #fff;
    outline:0;
    }
object, embed, a, a img, a:active, a:selected, a:visited {
    outline:0
    }
kristina childs
  • 2,190
  • 1
  • 20
  • 19
-5
a img {border: none; }

that's it, no need to complicate this.

Timothy Jones
  • 21,495
  • 6
  • 60
  • 90