하이퍼 링크 이미지 주위의 윤곽선을 제거하려면 어떻게해야합니까?


97

CSS를 사용하여 Text Replacement를 사용하고 부정적인 test-indent ie를 줄 때 text-indent:-9999px. 그런 다음 해당 링크를 클릭하면 아래 샘플 이미지와 같이 점선이 나타납니다. 이것에 대한 해결책은 무엇입니까?

여기에 이미지 설명 입력


3
그것을 제거하지 마십시오. 접근성을 위해 존재합니다.


: 중복 stackoverflow.com/questions/1142819/...을 (그러나 위의 접근성 의견을 참조하십시오!)
존은 말하기

나는 잘못된 검색어를 사용하여 이것에 착수했습니다. 나는이 알아야 할이 글을 읽는 사람을 추천 IE에서 밑줄
JGallardo

답변:


168

앵커 태그의 윤곽선 제거

a {outline : none;}

이미지 링크에서 윤곽선 제거

a img {outline : none;}

이미지 링크에서 테두리 제거

img {border : 0;}

1
감사합니다, Discover. IE의 하이퍼 링크 사진뿐만 아니라 하이퍼 링크가없는 일반 사진까지 오랫동안 저를 괴롭 혔습니다. (이상하게도 Stack이 아닌 Google을 통해) 답변을 찾을 때까지 성가신 일이었습니다.
Jason Weber

25

앵커 요소에서 CSS 속성 "outline"및 "none"값을 사용할 수 있습니다.

a {
outline: none;
}

도움이 되었기를 바랍니다.



9

포커스 스타일에는 이유가 있습니다. 제거하기로 결정한 경우 키보드를 통해 탐색하는 사람들은 더 이상 포커스가있는 항목 만 알지 못하므로 웹 사이트의 접근성이 손상됩니다.

(그들을 제자리에두면 마우스를 사용하지 않는 고급 사용자에게도 도움이됩니다)


: focus 스타일을 제거하지 않습니다. 스타일 개요를 추가하는 것뿐입니다. 다른 기본 스타일이 있습니다.
Wasim Shaikh

1
그렇다면 "기타 기본 스타일"은 무엇입니까? 내가 아는 한, 점선은 하나뿐입니다.
Wolfr

1
Ok .. 스크린 리더에 다른 스타일을 사용할 수 있습니다. 이것은 접근성을위한 해결책 일 수 있습니다.
Wasim Shaikh

화면 판독기는 개요를 사용할뿐만 아니라 키보드로 웹 사이트를 탐색하는 것을 좋아하는 사람들도 있습니다.
user2019515

8

FirefoxInternet Explorer (IE) 에서 동일한 테두리 효과가 있습니다. 가 있으며 일부 링크를 클릭하면 표시됩니다.

이 코드는 IE 만 수정합니다.

a:active { outline: none; }.

그리고 이것은 Firefox와 IE를 모두 수정합니다 .

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

사이트에서 링크 테두리를 제거하려면 마지막 코드를 스타일 시트에 추가해야합니다.


1
감사합니다 Mike, 이것은 정말 좋은 답변입니다. 그러나 -moz-outline-style 사용 : 없음; 유효한 CSS가 아닙니다. 여전히 이것은 좋은 옵션입니다
Wasim Shaikh


3

이 기능이 일부 사용자에게 유용하기를 바랍니다. 링크, 이미지 및 플래시 및 MSIE 9에서 윤곽선을 제거하는 데 사용할 수 있습니다.

    a, a:hover, a:active, a:focus, a img, object, embed {
    outline: none;
    ie-dummy: expression(this.hideFocus=true); /* MSIE - Microsoft Internet Explorer 9 remove outline */
    }

아래 코드는 이미지 테두리를 숨길 수 있습니다.

    img {
    border: 0;
    }

Firefox 3.6.8을 지원하지만 Firefox 4는 지원하지 않으려는 경우 ... 입력 type = image를 클릭하면 점선 윤곽선도 생성 될 수 있습니다. 이전 버전의 firefox에서 제거하려면 다음과 같이하십시오.

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

IE 9에서는 페이지 사이와 페이지 사이에이 메타 태그를 포함하지 않는 한 링크 주변의 점선을 제거 할 수없는 경우가 있습니다.

     <meta http-equiv="X-UA-Compatible" content="IE=9" />

@Sparky 2014 년에 널리 사용 된 브라우저 였기 때문에 MSIE를 비롯한 가장 많이 사용되는 브라우저에서이 작업을 수행하는 방법과 사용할 수있는 MS 메타 태그 및 CSS에 대한 정보를 통해 질문에 대한 답변을 제공해야한다고 생각합니다. MSIE 전용 MSIE를 포함한 대부분의 브라우저에 대한 지원을 제공하는 것은 내 답변의 일부일뿐입니다. 질문은 W3C 유효한 HTML 또는 CSS에 관한 것이 아닙니다 ...
jagb

@Sparky +1은 사실이기 때문에 MS css / html / meta 태그는 W3C 표준에 대해 거의 생각하지 않기 때문에 절대 신뢰해서는 안됩니다 .... Microsoft 메타 태그와 해당 CSS 코드를 MS 코드를 지원하는 브라우저는 MSIE 및 관련 MS 브라우저뿐입니다. "하이퍼 링크 이미지 주위의 윤곽선을 제거하려면 어떻게해야합니까?"라는 질문에 대한 답변으로
jagb

나는 단순히 나의 관찰을 설명하는 코멘트를했다.
Sparky

그러나이 메타 태그가 "일부 경우"에 필요하다는 주장에 대한 출처를 인용 할 수 있는지 궁금합니다 . 그리고 그 경우가 될 수 있습니다.
Sparky

일부 정보 는 Microsoft 웹 사이트 를 참조하십시오. 스택 오버플로에는 여기에 많은 질문이 있습니다. 일부 질문은 오른쪽 막대의이 질문 옆에 나열 될 수 있습니다. 일부 경우 MSIE / EDGE를 사용할 수 없습니다. 브라우저가 지원하지 않는 페이지 콘텐츠를 표시합니다. "경우에 따라"X-UA 호환 메타 태그는 MSIE / EDGE 방문자에게 유용합니다. 더 많은 정보가 있습니다. 작동 할 수정 사항이 여기에 있습니다. 유용한 정보가 되었으면합니다
jagb

3

이것은 Google 크롬에서 작동하는 최신 버전입니다.

:link:focus, :visited:focus {outline: none;}

1

-moz-user-focus: ignore; Gecko 기반 브라우저에서 (적용 방법에 따라! 중요 할 수 있음)


1

HTML 4.01에 이와 같이 사용

<img src="image.gif" border="0">


1

당신은 넣을 수 있습니다 overflow:hidden텍스트 들여 쓰기를 사용하여 속성에 페이지 외부에있는 점선이 사라집니다.

개요를 모두 함께 제거하는 것에 대한 몇 가지 게시물을 보았습니다. 사이트의 접근성을 낮출 수 있으므로이 작업을 수행 할 때주의하십시오.

a:active { outline: none; }

개인적으로이 속성 만 사용합니다. :hover 속성에 동일한 CSS 속성이있는 것처럼 탐색을 위해 키보드를 사용하는 사람들에게 윤곽선이 표시되지 않습니다.

이것이 문제를 해결하기를 바랍니다.



0

대부분의 사용자는 키보드를 탐색 컨트롤로 사용하는 사용자 유형이 아닐 것입니다. 그렇다면 키보드 탐색을 선호하는 소규모 그룹에 대해 대다수의 사용자를 성가 시게하는 것이 허용됩니까? 짧은 답변 — 사용자가 누구인지에 따라 다릅니다.

또한 Firefox와 Safari에서 동일한 방식으로 이러한 경험을 볼 수 없습니다. 따라서이 주장은 대부분 IE를위한 것 같습니다. 그것은 모두 사용자 기반과 그들의 지식 수준, 즉 사이트를 어떻게 사용하는지에 달려 있습니다.

현재 위치를 정말로 알고 싶고 키보드 사용자 인 경우 사이트를 통해 키를 입력 할 때 항상 상태 표시 줄을 볼 수 있습니다.


0

이것은 나를 위해 완벽하게 작동합니다.

a img {border:none;}


0

링크가있는 모든 이미지에는 이전 브라우저와의 링크임을 나타 내기 위해 이미지 주위에 테두리가 있습니다. IMG HTML 태그에 border = "0"을 추가하면 해당 사진이 이미지 주위에 테두리가 생기는 것을 방지 할 수 있습니다.

그러나 모든 이미지에 border = "0"을 추가하면 시간이 많이 걸릴뿐만 아니라 파일 크기와 다운로드 시간도 늘어납니다. 이미지에 테두리가 없도록하려면 아래 코드가 포함 된 CSS 규칙 또는 CSS 파일을 만듭니다.

img {테두리 스타일 : 없음; }


0

이것이이 개인에게 여전히 문제인지 확실하지 않지만 일반적으로 많은 사람들에게 고통이 될 수 있음을 알고 있습니다. 허락하신다면, 위의 솔루션에서 작동 일부 인스턴스하지만, 예를 들어, 워드 프레스 같은 CMS를 사용하여 당신이하는 경우, 그리고 윤곽이 플러그인이나 테마 중 하나에 의해 생성되고, 당신은 가능성이 가장 높은 것 없는 이 문제에 따라 해결 한 CSS를 추가하는 방법.

별도의 StyleSheet (예 : ' Lazyest StyleSheet '플러그인 사용)를 사용하고 그 안에 다음 CSS를 입력하여 기존 플러그인 (또는 테마) 강제 스타일을 재정의하는 것이 좋습니다.

a:hover,a:active,a:link {
    outline: 0 !important;
    text-decoration: none !important;
}

특정 규칙에 ' ! important '를 추가하면 규칙이 (플러그인, 테마 등에 있든 상관없이) 다른 곳에있을 수 있더라도 생성하는 우선 순위가됩니다.

이를 통해 개발 시간을 절약 할 수 있습니다. 물론, 원본 소스를 찾을 수는 있지만 많은 프로젝트에서 작업하거나 업데이트를 수행해야하거나 (변경 사항을 무시할 수있는 [ 제안되지 않음! ]) 새 플러그인 또는 테마를 추가 해야하는 경우 이것이 가장 좋습니다. 시간을 절약 할 수 있습니다.

이것이 도움이되기를 바랍니다 ... 평화!


0

위의 솔루션이 누구에게도 작동하지 않는 경우. 이것도 시도하십시오

a {
 box-shadow: none;
}

-9

예, 사용할 수 있습니다. CSS 재설정 a {outline:none}


a:focus, a:active {outline:none} CSS 재설정의 모범 사례를 보려면 최상의 솔루션은 common을 사용하는 :focus{outline:none}것입니다. 여전히 최상의 옵션이 있으면 공유하십시오.


20
다른 답변 중 하나를 받아들이지 않는 것이 약간 무례하지 않습니까?
Pekka
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.