可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I can make Firefox not display the ugly dotted focus outlines on links with this:
a:focus {
outline: none;
}
But how can I do this for <button>
tags as well? When I do this:
button:focus {
outline: none;
}
the buttons still have the dotted focus outline when I click on them.
(and yes, I know this is a usability issue, but I would like to provide my own focus hints which are appropriate to the design instead of ugly grey dots)
回答1:
button::-moz-focus-inner {
border: 0;
}
回答2:
No need to define a selector.
:focus {outline:none;}
::-moz-focus-inner {border:0;}
However, this violates accessibility best practices from the W3C. The outline is there to help those navigating with keyboards.
https://www.w3.org/TR/WCAG20-TECHS/F78.html#F78-examples
回答3:
If you prefer to use CSS to get rid of the dotted outline:
/*for FireFox*/
input[type=\"submit\"]::-moz-focus-inner, input[type=\"button\"]::-moz-focus-inner
{
border : 0px;
}
/*for IE8 */
input[type=\"submit\"]:focus, input[type=\"button\"]:focus
{
outline : none;
}
回答4:
The below worked for me in case of LINKS, thought of sharing - in case someone is interested.
a, a:visited, a:focus, a:active, a:hover{
outline:0 none !important;
}
Cheers!
回答5:
:focus, :active {
outline: 0;
border: 0;
}
回答6:
[Update] This solution doesn\'t work anymore. The solution that worked for me is this one https://stackoverflow.com/a/3844452/925560
The answer marked as correct didn\'t work with Firefox 24.0.
To remove Firefox\'s dotted outline on buttons and anchor tags I added the code below:
a:focus, a:active,
button::-moz-focus-inner,
input[type=\"reset\"]::-moz-focus-inner,
input[type=\"button\"]::-moz-focus-inner,
input[type=\"submit\"]::-moz-focus-inner,
select::-moz-focus-inner,
input[type=\"file\"] > input[type=\"button\"]::-moz-focus-inner {
border: 0;
outline : 0;
}
I found the solution here: http://aghoshb.com/articles/css-how-to-remove-firefoxs-dotted-outline-on-buttons-and-anchor-tags.html
回答7:
Tried most of the answers here, but none of them worked for me. When I realized that I have to get rid of the blue outline on buttons on Chrome too, I found another solution. Remove blue border from css custom-styled button in Chrome
This code worked for me on Firefox version 30 on Windows 7. Perhaps it might help somebody else out there :)
button:focus {outline:0 !important;}
回答8:
There\'s no way to remove these dotted focus in Firefox using CSS.
If you have access to the computers where your webapplication works, go to about:config in Firefox and set browser.display.focus_ring_width
to 0. Then Firefox won\'t show any dotted borders at all.
The following bug explains the topic: https://bugzilla.mozilla.org/show_bug.cgi?id=74225
回答9:
In most cases without adding the !important
to the CSS code, it won\'t work.
So, do not forget to add !important
a, a:active, a:focus{
outline: none !important; /* Works in Firefox, Chrome, IE8 and above */
}
Or any other code:
button::-moz-focus-inner {
border: 0 !important;
}
回答10:
There is many solutions found on the web for this, many of which work, but to force this, so that absolutely nothing can highlight/focus once a use the following:
::-moz-focus-inner, :active, :focus {
outline:none;
border:0;
-moz-outline-style: none;
}
This just adds that little bit extra security & seals the deal!
回答11:
Tested on Firefox 46 and Chrome 49 using this code.
input:focus, textarea:focus, button:focus {
outline: none !important;
}
Before (white dots are visible )
After ( White dots are invisible )
If you want to apply only on few input fields, buttons etc. Use the more specific code.
input[type=text] {
outline: none !important;
}
Happy Coding!!
回答12:
Remove dotted outline from links, button and input element.
a:focus, a:active,
button::-moz-focus-inner,
input[type=\"reset\"]::-moz-focus-inner,
input[type=\"button\"]::-moz-focus-inner,
input[type=\"submit\"]::-moz-focus-inner {
border: 0;
outline : 0;
}
回答13:
Simply add this css for select box
select:-moz-focusring {
color: transparent;
text-shadow: 0 0 0 #000;
}
This is working fine for me.
回答14:
The CSS code below works to remove this:
a:focus, a:active,
button::-moz-focus-inner,
input[type=\"reset\"]::-moz-focus-inner,
input[type=\"button\"]::-moz-focus-inner,
input[type=\"submit\"]::-moz-focus-inner,
select::-moz-focus-inner,
input[type=\"file\"] > input[type=\"button\"]::-moz-focus-inner {
border: 0;
outline : 0;
}
回答15:
It looks like the only way to achieve this is by setting
browser.display.focus_ring_width = 0
in about:config on a per browser basis.
回答16:
button::-moz-focus-inner { border: 0; }
Where button
can be whatever CSS selector for which you want to disable the behavior.
回答17:
You might want to intensify the focus rather than get rid of it.
button::-moz-focus-inner {border: 2px solid transparent;}
button:focus::-moz-focus-inner {border-color: blue}
回答18:
I think you should really know what you\'re doing by removing the focus outline, because it can mess it up for keyboard navigation and accessibility.
If you need to take it out because of a design issue, add a :focus
state to the button that replaces this with some other visual cue, like, changing the border to a brighter color or something like that.
Sometimes I feel the need to take that annoying outline out, but I always prepare an alternate focus visual cue.
And never use the blur()
js function. Use the ::-moz-focus-inner
pseudo class.
回答19:
If you have a border on a button and want to hide the dotted outline in Firefox without removing the border (and hence it\'s extra width on the button) you can use:
.button::-moz-focus-inner {
border-color: transparent;
}
回答20:
This will get the range control:
:focus {
outline:none;
}
::-moz-focus-inner {
border:0;
}
input[type=range]::-moz-focus-outer {
border: 0;
}
From: Remove dotted outline from range input element in Firefox
回答21:
This works on firefox v-27.0
.buttonClassName:focus {
outline:none;
}
回答22:
You can try button::-moz-focus-inner {border: 0px solid transparent;}
in your CSS.
回答23:
After trying many options from the above only the following worked for me.
*:focus, *:visited, *:active, *:hover { outline:0 !important;}
*::-moz-focus-inner {border:0;}
回答24:
Along with Bootstrap 3 I used this code. The second set of rules just undo what bootstrap does for focus/active buttons:
button::-moz-focus-inner {
border: 0; /*removes dotted lines around buttons*/
}
.btn.active.focus, .btn.active:focus, .btn.focus, .btn.focus:active, .btn:active:focus, .btn:focus{
outline:0;
}
NOTE that your custom css file should come after Bootstrap css file in your html code to override it.