Safari / Chrome 텍스트 입력 / 텍스트 영역 글로우 제거


337

CSS를 사용하여 텍스트 입력 / 텍스트 영역을 클릭 할 때 기본 파란색과 노란색 광선을 제거 할 수 있는지 궁금합니다.


6
@Steve, 그것을 비활성화하는 또 다른 이유는 지원되지 않는 외곽선 스타일 대신 : focus를 사용하여 모든 브라우저에서 광선 효과가 작동하도록하려는 것입니다.
Langdon

90
사람들이 질문이 기술적 일 때 어떤 것이 "해야 할 일"인지에 대해 철학적 인 대화를 시작할 때 정말 성가신 일입니다.
tim

2
Steve는 온라인 스프레드 시트를 만들고 있으므로 사용에 적합합니다. 그것은 달려 있지만, 단순한 형태라면 외곽선을 그대로 두어야합니다.
william44isme 2016 년

4
나는 그것을 비활성화하고 CSS로 커스텀 : focus 효과를 만드는 것이 완벽하다고 생각합니다 ...
ithil

또한 무언가를 비활성화하는 방법을 안다고해서 돌이킬 수없는 것은 아닙니다. 클라이언트를 위해 일하는 사람은 어떤 방법으로 렌더링 된 것을보고 원래 / 기본 방법으로 다시 전환 할 수 있다는 것을 알고 있습니다. 접근성에 대한 강의는 그 욕망을 바꾸거나 누군가를 행복하게하지 않습니다.
JakeGould

답변:


623
textarea, select, input, button { outline: none; }

글로우 / 아웃 라인을 유지하는 것은 실제로 사용자가 어떤 요소가 현재 초점을 맞추고 있는지 알 수 있기 때문에 실제로 접근성에 유리하다는 주장이 있습니다.

의사 요소 ': focus'를 사용하여 사용자가 선택한 입력 만 대상으로 지정할 수도 있습니다.

데모 : https://jsfiddle.net/JohnnyWalkerDesign/xm3zu0cf/


2
완벽합니다. 대단히 감사합니다. 또한 텍스트 영역의 오른쪽 하단에있는 텍스트 영역 크기 조정 옵션을 제거 할 수 있습니까?
Alec Smart

3
주의 +1; 제발 어떻게 자신의 플랫폼 수행에 대한 사용자의 기대를 나누기 아무것도 피하려고; 실제로 생산성을 저하시키고 웹 사이트를 사용하기 어렵게 만들 수 있습니다.
Rob

6
자신의 위험에 따라 크롬 / 사파리 텍스트 영역 크기 조정 옵션을 제거하십시오! 나는 그것이 실제로 유용하고 일부 사이트에서도 없어서는 안된다는 것을 알았습니다.
JeeBee

5
크기 조정 핸들 제거 : resize : none;
다니엘

22
상자 그림자 : 없음;
styks

92

이 효과는 입력되지 않은 요소에서도 발생할 수 있습니다. 더 일반적인 해결책으로 다음과 같은 작품을 발견했습니다.

:focus {
  outline-color: transparent;
  outline-style: none;
}

업데이트 ::focus 선택기 를 사용하지 않아도됩니다 . 예를 들어 요소 <div id="mydiv">stuff</div>가 있고이 div 요소에서 외부 광선을 얻는 경우 일반처럼 적용하십시오.

#mydiv {
  outline-color: transparent;
  outline-style: none;
}

예를 들어 <button>주로 어쨌든 클릭하기 때문에 글로우 온 포커스의 이점을 얻지 못하는 요소의 경우 작동 합니다.
kasimir

1
허용 된 답변이 OSX의 Chrome에서 작동하지 않았습니다. 이 솔루션은 작업을 수행했습니다.
Bart

또한이 기술을 사용하면 초점을 유지할 수는 있지만 완전히 제거하지 않으면 사이트 스타일에 맞게 외곽선의 값을 선택한 단색 등으로 재정의 할 수 있습니다.
Neil Monroe

1
최신 버전의 크롬에서 작동하지 않음45.0.2454.101 m
J86

@ Carl-W의 대답은 간과해서는 안됩니다! -jQuery를 사용하여 div 인 앵커에 연결할 때 유용했습니다. div에서 iframe을 다시로드 한 다음 다시로드하지 않고 수동으로 앵커로 이동했습니다. 페이지를 앵커로 스크롤하지만 전체 div에는 파란색 외부 광선이 있습니다. 이 CSS를 div 요소에 추가했으며 작동했습니다! - 참고 : 내가 사용하지 않았다 :focus난 그냥 넣어 선택기를 위해 outline-color그리고 outline-style내 사업부의 CSS에.
Wade

13

웹킷 기반 브라우저의 텍스트 영역 크기 조정 :

텍스트 영역에서 최대 높이와 ​​최대 너비를 설정해도 시각적 크기 조정 핸들이 제거되지 않습니다. 시험:

resize: none;

(그렇습니다. "사용자의 기대를 상하게하는 어떠한 일도하지 않기 위해 노력하십시오"에 동의하지만 때로는 웹 응용 프로그램의 맥락에서 의미가 있습니다.

웹킷 양식 요소의 모양과 느낌을 처음부터 사용자 정의하려면 다음을 수행하십시오.

-webkit-appearance: none;

3
또한 완전히 해제하지 않고 일부 레이아웃과의 상호 작용을 해결할 수있는, 한 방향으로 만 크기 조정 있도록 가능 : 크기 조정에 사용할 수있는 값은 none, both, horizontal, vertical,와 inherit.
Boann

나는 '-webkit-appearance : none;'과 함께 여기에 제공된 솔루션을 좋아합니다. -입력 요소에서 모든 스타일을 제거하므로 필요에 따라 스타일을 지정할 수 있습니다. 감사!
hanazair

나는 이것이 왜 그렇게 많은 투표를했는지 알지 못합니다. 그것은 전혀 질문에 대한 답이 아닙니다.
paddotk

7

칼 W :

이 효과는 입력되지 않은 요소에서도 발생할 수 있습니다. 더 일반적인 해결책으로 다음과 같은 작품을 발견했습니다.

:focus {
  outline-color: transparent;
  outline-style: none;
}

나는 이것을 설명 할 것이다 :

  • :focus초점이 맞는 요소의 스타일을 의미합니다. 그래서 우리는 요소의 초점을 맞추고 있습니다.
  • outline-color: transparent; 파란 빛이 투명 함을 의미합니다.
  • outline-style: none; 같은 일을합니다.

5

나는 div클릭 이벤트가있는 클릭 에서 이것을 경험 했으며 20 번의 검색 후 나는이 스 니펫을 발견하여 하루를 절약했다.

-webkit-tap-highlight-color: rgba(0,0,0,0);

이것은 웹킷 모바일 브라우저에서 기본 버튼 강조 표시를 비활성화합니다


4

접근성에 관심있는 사람들을위한 솔루션입니다 .

outline:none;포커스 아웃 라인을 비활성화하는 데 사용하지 마십시오 . 이 작업을 수행하면 웹의 접근성이 중단됩니다. 이를 수행하기위한 접근 가능한 방법이 있습니다.

액세스 가능한 방식으로 테두리를 제거하는 방법을 설명하기 위해 작성한 이 기사 를 확인하십시오 .

간단히 말해 키보드 사용자를 감지 할 때 윤곽선 테두리 만 표시하는 것입니다. 사용자가 마우스를 사용하기 시작하면 개요가 비활성화됩니다. 결과적으로 두 가지 중 최고를 얻습니다.


2

부트 스트랩의 버튼에서 글로우를 제거하려면 (필자의 의견으로는 반드시 UX는 아닙니다) 다음 코드가 필요합니다.

.btn:focus, .btn:active:focus, .btn.active:focus{
  outline-color: transparent;
  outline-style: none;
}

감사. .btn:active:focus실제로 버튼을 누른 상태에서 글로우를 제거해야했습니다.
homerjam

2

이 솔루션은 저에게 효과적이었습니다.

input:focus {
    outline: none !important;
    box-shadow: none !important;
}

1

때로는 버튼이 발생하고 아래를 사용하여 외부를 제거하십시오.

input:hover
input:active, 
input:focus, 
textarea:active,
textarea:hover,
textarea:focus, 
button:focus,
button:active,
button:hover
{
    outline:0px !important;
}

0
<select class="custom-select">
        <option>option1</option>
        <option>option2</option>
        <option>option3</option>
        <option>option4</option>
</select>

<style>
.custom-select {
        display: inline-block;
        border: 2px solid #bbb;
        padding: 4px 3px 3px 5px;
        margin: 0;
        font: inherit;
        outline:none; /* remove focus ring from Webkit */
        line-height: 1.2;
        background: #f8f8f8;

        -webkit-appearance:none; /* remove the strong OSX influence from Webkit */

        -webkit-border-radius: 6px;
        -moz-border-radius: 6px;
        border-radius: 6px;
    }
    /* for Webkit's CSS-only solution */
    @media screen and (-webkit-min-device-pixel-ratio:0) { 
        .custom-select {
            padding-right:30px;    
        }
    }

    /* Since we removed the default focus styles, we have to add our own */
    .custom-select:focus {
        -webkit-box-shadow: 0 0 3px 1px #c00;
        -moz-box-shadow: 0 0 3px 1px #c00;
        box-shadow: 0 0 3px 1px #c00;
    }

    /* Select arrow styling */
    .custom-select:after {
        content: "▼";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        font-size: 60%;
        line-height: 30px;
        padding: 0 7px;
        background: #bbb;
        color: white;

        pointer-events:none;

        -webkit-border-radius: 0 6px 6px 0;
        -moz-border-radius: 0 6px 6px 0;
        border-radius: 0 6px 6px 0;
    }
</style>

0

"슬라이딩 도어"유형의 입력 버튼에서 아웃 라인을 제거하는 것이 도움이되는 것을 알았습니다. 아웃 라인은 슬라이딩 도어 이미지의 오른쪽 "캡"을 덮지 않기 때문에 초점 상태가 약간 불안정 해 보이기 때문입니다.

input.slidingdoorbutton:focus { outline: none;}

0

텍스트 입력 필드에서이 효과를 제거해야했는데 다른 기술을 제대로 작동시킬 수 없었지만 이것이 저에게 효과적입니다.

input[type="text"], input[type="text"]:focus{
            outline: 0;
            border:none;
            box-shadow:none;

    }

Firefox 및 Chrome에서 테스트되었습니다.


0

확실한! *를 사용하여 모든 HTML 요소에서 파란색 테두리를 제거 할 수도 있습니다.

*{
    outline-color: transparent;
    outline-style: none;
  }

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