Como remover o contorno pontilhado do Firefox nos BOTÕES e também nos links?

StackOverflow https://stackoverflow.com/questions/71074

  •  09-06-2019
  •  | 
  •  

Pergunta

Posso fazer com que o Firefox não exiba os feios contornos de foco pontilhados em links com isso:

a:focus { 
    outline: none; 
}

Mas como posso fazer isso por <button> tags também?Quando eu faço isso:

button:focus { 
    outline: none; 
}

os botões ainda têm o contorno de foco pontilhado quando clico neles.

(e sim, eu sei que isso é um problema de usabilidade, mas gostaria de fornecer minhas próprias dicas de foco que sejam apropriadas ao design, em vez de feios pontos cinzas)

Foi útil?

Solução

button::-moz-focus-inner {
  border: 0;
}

Outras dicas

Não há necessidade de definir um seletor.

:focus {outline:none;}
::-moz-focus-inner {border:0;}

No entanto, isso viola as melhores práticas de acessibilidade do W3C.O esboço existe para ajudar quem navega com teclados.

https://www.w3.org/TR/WCAG20-TECHS/F78.html#F78-examples

Se você preferir usar CSS para se livrar do contorno pontilhado:

/*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; 
    }

O abaixo funcionou para mim no caso de LINKS, pensei em compartilhar - caso alguém tenha interesse.

a, a:visited, a:focus, a:active, a:hover{
    outline:0 none !important;
}

Saúde!

:focus, :active {
    outline: 0;
    border: 0;
}

[Atualização] Esta solução não funciona mais.A solução que funcionou para mim é esta https://stackoverflow.com/a/3844452/925560

A resposta marcada como correta não funcionou com o Firefox 24.0.

Para remover o contorno pontilhado do Firefox em botões e tags de âncora, adicionei o código abaixo:

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;
}

Encontrei a solução aqui: http://aghoshb.com/articles/css-how-to-remove-firefoxs-dotted-outline-on-buttons-and-anchor-tags.html

Tentei a maioria das respostas aqui, mas nenhuma delas funcionou para mim.Quando percebi que também precisava me livrar do contorno azul dos botões do Chrome, encontrei outra solução. Remova a borda azul do botão CSS com estilo personalizado no Chrome

Este código funcionou para mim no Firefox versão 30 no Windows 7.Talvez possa ajudar alguém por aí :)

button:focus {outline:0 !important;}

Não há como remover esse foco pontilhado no Firefox usando CSS.

Se você tiver acesso aos computadores onde sua aplicação web funciona, acesse about:config no Firefox e defina browser.display.focus_ring_width para 0.Então o Firefox não mostrará nenhuma borda pontilhada.

O bug a seguir explica o tópico: https://bugzilla.mozilla.org/show_bug.cgi?id=74225

Existem muitas soluções encontradas na web para isso, muitas das quais funcionam, mas para forçar isso, para que absolutamente nada possa destacar/focar uma vez, use o seguinte:

::-moz-focus-inner, :active, :focus {
    outline:none;
    border:0;
    -moz-outline-style: none;
}

Isso apenas adiciona um pouco mais de segurança e fecha o negócio!

Testado no Firefox 46 e Chrome 49 usando este código.

input:focus, textarea:focus, button:focus {
    outline: none !important;
}

Antes (pontos brancos são visíveis)

input with white dots

Depois (Os pontos brancos são invisíveis)enter image description here

Se você deseja aplicar apenas em alguns campos de entrada, botões, etc.Use o código mais específico.

input[type=text] {
  outline: none !important;
}

Boa codificação!!

Na maioria dos casos, sem adicionar o !important ao código CSS, não funcionará.

Então, não esqueça de adicionar !important

a, a:active, a:focus{
    outline: none !important; /* Works in Firefox, Chrome, IE8 and above */
}


Ou qualquer outro código:

button::-moz-focus-inner {
  border: 0 !important;
}

Basta adicionar este css para a caixa de seleção

select:-moz-focusring {
    color: transparent;
    text-shadow: 0 0 0 #000;
}

Isso está funcionando bem para mim.

Parece que a única maneira de conseguir isso é definindo

browser.display.focus_ring_width = 0

em about:config por navegador.

button::-moz-focus-inner { border: 0; }

Onde button pode ser qualquer seletor CSS para o qual você deseja desabilitar o comportamento.

Você pode querer intensificar o foco em vez de se livrar dele.

button::-moz-focus-inner {border: 2px solid transparent;}

button:focus::-moz-focus-inner {border-color: blue} 

Acho que você realmente deveria saber o que está fazendo removendo o contorno do foco, porque isso pode atrapalhar a navegação e a acessibilidade do teclado.

Se você precisar retirá-lo devido a um problema de design, adicione um :focus estado para o botão que substitui isso por alguma outra dica visual, como alterar a borda para uma cor mais brilhante ou algo parecido.

Às vezes sinto necessidade de eliminar aquele contorno chato, mas sempre preparo uma dica visual de foco alternativo.

E nunca use o blur() função js.Use o ::-moz-focus-inner pseudoclasse.

Remova o contorno pontilhado de links, botões e elementos de entrada.

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;
}

Se você tiver uma borda em um botão e quiser ocultar o contorno pontilhado no Firefox sem removendo a borda (e, portanto, a largura extra do botão), você pode usar:

.button::-moz-focus-inner {
    border-color: transparent;
}

O código CSS abaixo funciona para remover isso:

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;
}

Isso obterá o controle de intervalo:

:focus {
    outline:none;
}
::-moz-focus-inner {
    border:0;
}
input[type=range]::-moz-focus-outer {
    border: 0;
}

De: Remova o contorno pontilhado do elemento de entrada de intervalo no Firefox

Podes tentar button::-moz-focus-inner {border: 0px solid transparent;} em seu CSS.

Isso funciona no Firefox v-27.0

 .buttonClassName:focus {
  outline:none;
}

Depois de tentar muitas opções acima, apenas o seguinte funcionou para mim.

*:focus, *:visited, *:active, *:hover  { outline:0 !important;}
*::-moz-focus-inner {border:0;}

Junto com o Bootstrap 3 usei esse código.O segundo conjunto de regras apenas desfazer o que o bootstrap faz para botões de foco/ativos:

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;
}

OBSERVE que seu arquivo css personalizado deve vir após o arquivo css do Bootstrap em seu código html para substituí-lo.

Sim, não perca !importante

button::-moz-focus-inner {
 border: 0 !important;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top