2013-02-19 4 views
3

앵커를 이미지로 바꾸고 그 이미지를 앵커의 배경으로 지정한다고 가정 해 보겠습니다. 접근성을 위해 닻에 싸여있는 텍스트를 계속 표시하고 싶지만 보이지 않게해야합니다. 잘 알려진 기술은 text-indent : -9999px와 같은 것을 사용하는 것입니다. 오버 플로우와 함께 : 숨김;이 기술은 일반적으로 음수 텍스트 들여 쓰기를 사용하는 이유는 무엇입니까?

우리 앵커 박스가 50px x 50px라고 가정하면, 우리는 왜 텍스트 들여 쓰기를하지 않습니까 : 50px? 이렇게하면 아무리 오래 걸리더라도 앵커의 숨겨진 오버플로에 텍스트가 표시됩니다. !

+0

확신하지만''대부분의 요소에 대해 기본적으로 overflow'을 visible'되어, 현대 기술 중 하나 매우 가까운? – Wez

+2

하루에 몇 가지 기묘한 단점이 있었는데,이 부분은 왼쪽에 위치 시키면 작동하는 것이고 오른쪽으로 이동하면 보이게됩니다. 따라서 음수입니다. IE5 (떨림) 또는 IE6에서 무언가를 만드는 것을 기억하고 음수가 단순한 경향이 아니라는 사실을 깨닫고 실제로 필요했습니다. – Graham

+0

@ 그래함 감사합니다! 그건 내가 정확히 궁금해하는 것에 대한 대답이다. 당신이 그것을 적절하게 답변한다면 나는 그것을 그 것처럼 표시 할 것입니다. – bernk

답변

0

글쎄, 당신은 텍스트가 이상 50 픽셀 폭

http://jsfiddle.net/C29Ma/

<div class="image">Hide me please</div> 

div.image { 
    width: 50px; 
    height: 50px; 
    background: url(http://placehold.it/50x50) no-repeat; 
    text-indent: 50px; 
} 

때문에, 주위에 래핑 그렇게 할 때 그냥 어떻게되는지 살펴 보자. 첫 번째 줄만 50px만큼 들여 쓰기됩니다.

음수 들여 쓰기 기술은 유사 요소 또는 제어 단어 줄 바꿈에 대한 광범위한 지원이 있기 전에 발생했습니다. 그것은 일을 충분히 잘합니다. 그래서 사람들은 더 새롭고/더 나은 방법이있을 때 어떻게 행동 하는지를 바꾸지 않습니다.

귀하의 제안은

http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/

.hide-text { 
    text-indent: 100%; 
    white-space: nowrap; 
    overflow: hidden; 
} 
+0

좋아, 이상한. 나는이 일을하고 그것이 효과가 있었는지 확신했지만 나는 아마 텍스트에서 어떤 틈새가없는 것 같아요. 답변 해주셔서 감사합니다! – bernk

+0

개인적으로 이미지를 사용할 수없는 경우 작동하기 때문에이 기술을 선호합니다. http://nicolasgallagher.com/css-image-replacement-with-pseudo-elements/ – cimmanon

+0

@ryanve 다른 질문이 있으면 새로운 질문. – cimmanon