Skip to main content

Disable grey border on anchor (<a>) elements on focus



I am trying to make the ugly grey border that appears around anchor tags go away. The CSS property " outline:none; " works for Firefox, but how can I do it in IE. Preferably using CSS expressions or jquery. I'm not worried about accessibility BTW.





Based on your suggestions I found these to be the best solutions...





The jquery(for IE browsers):







$('a').focus(function(){

$(this).blur();

});







Another jquery option(for IE browsers only):







$('a').focus(function(){

$(this).attr("hideFocus", "hidefocus");

});







The CSS(For all other browsers that force an outline):







a{

outline: none;

}







Note: Some browsers such as Google Chrome don't force an outline on focus.



Source: Tips4all

Comments

  1. Unfortunately I think hideFocus is your best answer as blur isn't always appropriate:

    <a href="..." hidefocus="hidefocus">...</a>


    http://msdn.microsoft.com/en-us/library/ms533783(VS.85).aspx

    ReplyDelete
  2. It sounds like you're talking about the dotted border that appears when you tab through links. You have the correct solution for Firefox (outline: none in the CSS). The best solution I've used for IE is to add an onfocus listener that removes focus:

    <a href="" onfocus="this.hideFocus=true;">link</a>


    Take a look at this site for an example of how you might do it globally: http://codylindley.com/Javascript/223/hiding-the-browsers-focus-borders-should-i-shouldnt-i

    ReplyDelete
  3. For IE, you can use Javascript like this:

    <a href="..." onfocus="this.blur();">Click Here</a>


    Read more:
    http://www.htmlgoodies.com/beyond/javascript/article.php/3471171

    For Firefox and Safari, outline:none works.

    Read more:
    http://css-tricks.com/removing-the-dotted-outline/

    ReplyDelete
  4. Unless I'm missing which dotted border is being discussed, outline:none works in Internet Explorer 8 (at least, for me). Rather all of a sudden some hyperlinks were rendering with a dotted border (the only attribute I remember changing is display:inline on an h2 element that contained a link, afterwards the dotted border appeared). So I threw in a { outline:none; } in my global stylesheet and poof, no more border in IE8!

    ReplyDelete
  5. Does this not work?

    a
    {
    border: 0;
    }

    ReplyDelete
  6. a {outline:noneIE 8} css seems to work well on Firefox, Chrome and IE 8.

    ReplyDelete

Post a Comment

Popular posts from this blog

Why is this Javascript much *slower* than its jQuery equivalent?

I have a HTML list of about 500 items and a "filter" box above it. I started by using jQuery to filter the list when I typed a letter (timing code added later): $('#filter').keyup( function() { var jqStart = (new Date).getTime(); var search = $(this).val().toLowerCase(); var $list = $('ul.ablist > li'); $list.each( function() { if ( $(this).text().toLowerCase().indexOf(search) === -1 ) $(this).hide(); else $(this).show(); } ); console.log('Time: ' + ((new Date).getTime() - jqStart)); } ); However, there was a couple of seconds delay after typing each letter (particularly the first letter). So I thought it may be slightly quicker if I used plain Javascript (I read recently that jQuery's each function is particularly slow). Here's my JS equivalent: document.getElementById('filter').addEventListener( 'keyup', function () { var jsStart = (new Date).getTime()...

Is it possible to have IF statement in an Echo statement in PHP

Thanks in advance. I did look at the other questions/answers that were similar and didn't find exactly what I was looking for. I'm trying to do this, am I on the right path? echo " <div id='tabs-".$match."'> <textarea id='".$match."' name='".$match."'>". if ($COLUMN_NAME === $match) { echo $FIELD_WITH_COLUMN_NAME; } else { } ."</textarea> <script type='text/javascript'> CKEDITOR.replace( '".$match."' ); </script> </div>"; I am getting the following error message in the browser: Parse error: syntax error, unexpected T_IF Please let me know if this is the right way to go about nesting an IF statement inside an echo. Thank you.