user170579 user170579 - 1 year ago 92
CSS Question

How to remove the border highlight on an input text element

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.


Answer Source

In your case, try:

input.middle:focus {
    outline-width: 0;

Or in general, to affect all basic form elements:

button:focus {
    outline: none;

In the comments, Noah Whitmore suggested taking this even further to support elements that have the contenteditable attribute set to true (effectively making them a type of input element). The following should target those as well (in CSS3 capable browsers):

[contenteditable="true"]:focus {
    outline: none;

Although I wouldn't recommend it, for completeness' sake, you could always disable the focus outline on everything with this:

*:focus {
    outline: none;

Keep in mind that the focus outline is an accessibility and usability feature; it clues the user into what element is currently focused.