버튼과 링크에서 Firefox의 점선을 제거하는 방법은 무엇입니까?


507

Firefox에서 다음 과 같은 링크 에 점이 찍힌 초점 윤곽선을 표시하지 않도록 할 수 있습니다

a:focus { 
    outline: none; 
}

그러나 <button>태그에 대해서도 어떻게 할 수 있습니까? 내가 이것을 할 때 :

button:focus { 
    outline: none; 
}

버튼을 클릭해도 버튼에 점선 초점 윤곽이 나타납니다.

(예, 이것이 유용성 문제라는 것을 알고 있지만 추한 회색 점 대신 디자인에 적합한 내 자신의 포커스 힌트를 제공하고 싶습니다)


2
Firefox 4에서와 같이 요소를 클릭하면 기본적으로 윤곽선이 표시되지 않고 키보드 포커스를받는 경우에만 나타납니다.
Geert

1
"못생긴"이라고 부르는 것은 웹 사이트의 접근성을 지원하기위한 것입니다. 키보드 만 사용자는이 개요를 제거 할 때 더 이상 웹 사이트의 어느 부분에 초점이 있는지 확인할 수 없습니다. 귀하의 웹 사이트에 완전히 액세스 할 수 없으며 이는 사실이 아닙니다. 윤곽을 제거하지 마십시오. 당신의 방식으로 더 나은 스타일.
Markus Graf

답변:


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

15
예, 그것은 저에게도 효과가 있습니다! 이제 어떻게 선택을 할 수 있습니까?
7wp

16
이것은 입력에도 적용됩니다 (예 : input ::-moz-focus-inner {border : 0;})
El Yobo

15
이중 콜론의 목적 : (CSS3 표기법) evotech.net/blog/2007/05/…
sholsinger

21
bootstrap.css가이 못생긴 점선 버튼을 만들었 기 때문에 이것은 저에게 효과적이지 않았습니다. 대신에:focus {outline:none !important;}
machineaddict

5
: focus {outline : none;} ::-moz-focus-inner {border : 0;} 덜 구체적입니다
Ben

311

선택기를 정의 할 필요가 없습니다.

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

그러나 이는 W3C의 접근성 모범 사례를 위반합니다. 키보드로 탐색하는 사람들을 돕는 개요가 있습니다.

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


8
감사합니다. 정답이 맞지 않을 때 도움이되었습니다. 잘못된 선택기를 사용하고 있었을 것입니다.
irl_irl

이것에 감사합니다. 링크와 버튼에서도 제거됩니까?
Nathan

3
이것은 최고입니다! 허용 대답은만을위한 것입니다 <button>하지 <a>않으며<input>
론 반 Heijden 데르

2
Ubuntu (GNU / Linux)의 Mozilla Firefox 30에서 완벽합니다.
e-info128

4
이 접근성에 대한 메모를 두 번째로하겠습니다. 모든 사람이 마우스를 사용하거나 보거나 잘 볼 수있는 것은 아닙니다. 즉, 링크 (및 상식)에 따라 개요를 숨기면 a11y가 깨집니다. without ... an author-supplied visual focus indicator즉, OP가 언급했듯이 사용자 에이전트 스타일을 자신의 것으로 대체하는 것이 좋습니다. 이상적으로는 대비가 높아야합니다.
johncip 2019

48

점선으로 된 윤곽선을 제거하기 위해 CSS를 사용하려는 경우 :

/*for FireFox*/
    input[type="submit"]::-moz-focus-inner, input[type="button"]::-moz-focus-inner
    {   
        border : 0;
    } 
/*for IE8 and below */
    input[type="submit"]:focus, input[type="button"]:focus
    {     
        outline : none; 
    }

숫자가 0 인 단위는 필요하지 않습니다. 0px다음과 같이 대체 될 수 있습니다0
slang

44

아래는 LINKS의 경우 공유에 대한 생각으로 누군가에게 관심이있는 경우에 도움이되었습니다.

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

건배!


12
링크에 a { outline: none; }충분해야합니다.
부여

3
여기서 중요한 것은 트릭을 수행했지만 다른 솔루션에는 그 기능이 없었으며 작동하지 않았습니다. 나를 위해.
Cristiano Fontes

그러나 자주 사용한다 a { outline: none; }!important> -a { outline: none !important; }
joryl

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

내가 사용했던 선택 옵션 상자에 대한 매력처럼 일했다
Muhammad Ahsan

1
이것은 충분히 구체적이지 않았고, 중요하거나 대상 만 사용하고 싶지 않았으므로 a, 좋은 옵션을 찾았습니다 body :focus, body :active { outline: 0; border: 0; } ::-moz-focus-inner { border: 0; }
Ivan Durst

10

[업데이트]이 솔루션은 더 이상 작동하지 않습니다. 나를 위해 일한 해결책은 이것입니다 https : //.com/a/3844452/925560

Firefox 24.0에서는 정답으로 표시되지 않았습니다.

버튼과 앵커 태그에서 Firefox의 점선 윤곽선을 제거하기 위해 아래 코드를 추가했습니다.

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

여기에서 해결책을 찾았습니다 : http://aghoshb.com/articles/css-how-to-remove-firefoxs-dotted-outline-on-buttons-and-anchor-tags.html


2
그것은 더 이상 작동하지 않습니다 : / 일 솔루션이 하나 stackoverflow.com/a/3844452/925560
레나토 카르발류

8

여기에서 대부분의 답변을 시도했지만 그중 아무것도 나를 위해 일하지 않았습니다. Chrome의 버튼에서 파란색 윤곽선을 제거해야한다는 것을 깨달았을 때 다른 해결책을 찾았습니다. Chrome의 CSS 맞춤 스타일 버튼에서 파란색 테두리 제거

이 코드는 Windows 7의 Firefox 버전 30에서 저에게 효과적이었습니다. 아마도 다른 누군가를 도울 수 있습니다 :)

button:focus {outline:0 !important;}

여기에서도 마찬가지입니다. 이것은 FF 38.0.5에서 작동하는 유일한 솔루션입니다
OlivierH

6

CSS를 사용하여 Firefox에서 이러한 점을 찍을 수있는 방법은 없습니다.

웹 응용 프로그램이 작동하는 컴퓨터에 액세스 할 수 있으면 Firefox의 about : config로 이동 browser.display.focus_ring_width하여 0으로 설정하십시오. 그러면 Firefox에 점선 테두리가 전혀 표시되지 않습니다.

다음 버그는 주제를 설명합니다. https://bugzilla.mozilla.org/show_bug.cgi?id=74225


고맙지 만 잘 작동하지만 이전에는 너무 많은 링크를 만들었지 만 지금 까지이 문제가 발생하지 않았습니다. 그러나 지금 나는 혼란스러워서 이전에 존재했던 이유는 무엇입니까?
Durga Rao

이 대답은 이제 완전히 거짓입니다. ::-moz-focus-inner {border:0;}다른 답변에서 언급 한대로 설정하면 완벽하게 작동합니다.
Andy Mercer

@AndyM이 답변은 작동합니다. 다른 답변으로 제시된 해결책은 CSS에 대한 것이며 개별 사이트에서만 작동합니다.
Rahil Wazir

7
질문은 CSS로 어떻게 할 수 있는지 묻고 대답은 할 수 없다고 말합니다. 그건 틀렸어 그것은 될 수 있습니다.
Andy Mercer

6

웹에는이 솔루션에 대한 많은 솔루션이 있지만 많은 솔루션이 작동하지만 강제로 사용하면 다음을 사용하면 한 번만 강조 표시하거나 집중할 수 없습니다.

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

이것은 약간의 추가 보안을 추가하고 거래를 봉인합니다!



5

이 코드를 사용하여 Firefox 46 및 Chrome 49에서 테스트되었습니다.

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

이전 (흰색 점이 표시됨)

흰색 점으로 입력

이후 (흰색 점은 보이지 않음) 여기에 이미지 설명을 입력하십시오

소수의 입력 필드, 버튼 등에 적용하려면보다 구체적인 코드를 사용하십시오.

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

행복한 코딩 !!


!important나 파이어 폭스의 스타일 시트를 오버라이드 (override) 할 필요했다. 건배!
SamHH

5

선택 상자에이 CSS를 추가하기 만하면됩니다.

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

이것은 나를 위해 잘 작동합니다.


4

키보드 탐색 및 접근성을 위해 엉망이 될 수 있기 때문에 포커스 개요를 제거하여 수행중인 작업을 실제로 알아야한다고 생각합니다.

디자인 문제로 인해 제거해야하는 경우 :focus 테두리를 더 밝은 색으로 변경하는 것과 같은 다른 시각적 신호로 대체 상태를 버튼에 .

때때로 나는 그 성가신 개요를 꺼내야 할 필요가 있다고 생각하지만, 항상 다른 초점 시각적 신호를 준비합니다.

그리고 js 함수를 사용 하지 마십시오blur() . ::-moz-focus-inner의사 클래스를 사용하십시오 .


4

대부분의 경우 추가하지 않고 !important CSS 코드에를 하지 않으면 작동하지 않습니다.

따라서 추가하는 것을 잊지 마십시오 !important

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


또는 다른 코드 :

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

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

button비헤이비어를 비활성화하려는 CSS 선택기는 어디에서나 가능합니다.


3

초점을 제거하는 대신 초점을 강화할 수 있습니다.

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

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

2
@Nathan은 조금 늦었지만 포커스 상태에 스타일이 없으면 키보드 경험이 엉망이됩니다. 키를 눌렀을 때 포커스가 무엇인지 알 수 없습니다 .
Hkan

@Hkan 예, 동의합니다. 그러나 Firefox의 개요는 특히 사용자 정의 포커스 테두리 주위에있을 때 추악합니다.
Nathan

@Nathan 나는 그것에 완전히 동의합니다. 우리가해야 할 일은 요소를 상기 상태에서 동일하게 만드는 대신 포커스 상태에 대한 자체 스타일을 제공하는 것입니다.
Hkan

3

링크, 버튼 및 입력 요소에서 점선 윤곽선을 제거하십시오.

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

3

버튼에 테두리가 있고 테두리를 제거 하지 않고 Firefox에서 점선으로 된 윤곽선을 숨기려면 버튼에 여분의 너비가 있어야합니다.

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

3

CSS 코드는 다음이를 제거하기 위해 노력 :

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

2

이를 달성하는 유일한 방법은

browser.display.focus_ring_width = 0

about : config 브라우저별로.


1

이것은 파이어 폭스 v-27.0에서 작동합니다

 .buttonClassName:focus {
  outline:none;
}

1

위의 많은 옵션을 시도한 후에 다음이 나에게 효과적이었습니다.

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

실제로 (적어도 Firefox 77에서) 필요한 것 : button:focus { outline: none !important } 또는 중요하지 않은 것을 좋아하는 경우 Firefox 스타일을 무시할 수도 있습니다. :root button:focus { outline: none }
Jonas Sandstedt

1

Bootstrap 3과 함께이 코드를 사용했습니다. 두 번째 규칙 세트는 포커스 / 활성 버튼에 대한 부트 스트랩의 기능을 취소 합니다.

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

사용자 정의 CSS 파일은 HTML 코드에서 Bootstrap CSS 파일 다음에 와야합니다.


1

네 놓치지 마세요! 중요

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

! 중요한 것은 여기에 대한 답변의 일부가 아니며, 앱에 필요한 경우 버튼 주위의 하이라이트보다 해결해야 할 더 큰 문제가 있습니다. 항상 중요하지 않도록 노력하십시오!
monokrome

0

button::-moz-focus-inner {border: 0px solid transparent;}CSS를 사용해 볼 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.