When an html element is 'focused' (currently selected/tabbed in to), many browsers (at least Safari and Chrome) will put a blue border around it.
For the layout I am working on, this is distracting and does not look right.
<input type="text" name="user" class="middle" id="user" tabindex="1" />
FireFox does not seem to do this, or at least, will let me control it with
border: x;
If someone can tell me how IE performs, I would be curious.
But getting Safari to remove this little bit of flare would be nice.
This is an old thread, but for reference it's important to note that disabling an input element's outline is not recommended as it hinders accessibility.
The outline property is there for a reason - providing users with a clear indication of keyboard focus. For further reading and additional sources about this subject see http://outlinenone.com/
You can try this also
or
Try this also
None of the solutions worked for me in Firefox.
The following solution changes the border style on focus for Firefox and sets the outline to none for other browsers.
I've effectively made the focus border go from a 3px blue glow to a border style that matches the text area border. Here's some border styles:
Dashed border (border 2px dashed red):
No border! (border 0px):
Textarea border (border 1px solid gray):
Here is the code:
This is a common concern.
The default outline that browsers render is ugly.
See this for example:
The most common "fix" that most recommend is
outline:none
- which if used incorrectly - is disaster for accessibility.So...of what use is the outline anyway?
There's a very dry-cut website I found which explains everything well.
Ok, let's try it out same example as above, now use the
TAB
key to navigate.Notice how you can tell where the focus is even without clicking the input?
Now, let's try
outline:none
on our trusty<input>
So, once again, use the
TAB
key to navigate after clicking the text and see what happens.See how it's more difficult to figure out where the focus is? The only telling sign is the cursor blinking. My example above is overly simplistic. In real-world situations, you wouldn't have only one element on the page. Something more along the lines of this.
Now compare that to the same template if we keep the outline:
So we have established the following
So what's the answer?
Remove the ugly outline and add your own visual cues to indicate focus.
Here's a very simple example of what I mean.
I remove the outline and add a bottom border on :focus and :active. I also remove the default borders on the top, left and right sides by setting them to transparent on :focus and :active (personal preference)
So, we try the approach above with our "real-world" example from earlier:
This can be extended further by using external libraries that build on the idea of modifying the "outline" as opposed to removing it entirely like Materialize
You can end up with something that is not ugly and works with very little effort
You could use CSS to disable that! This is the code I use for disabling the blue border:
This will remove the blue border!
This is a working example: JSfiddle.net
Hope it helps!