2016-07-01 2 views
2

<span> 및 과 같은 특정 인라인 요소에 대한 word-break 속성을 변경하여 페이지 콘텐츠의 흐름을 개선하려고합니다.인라인 요소에 대한 Firefox 워드 브레이크

Firefox는 블록으로 표시되는 요소 (예 : <div>)에 대해서만 단어 구분 속성을 인식하지만 Chrome은 단어 분리 요구를 존중합니다.

아래 예에서 빨간색과 파란색 부분은 Chrome에서 동일하게 렌더링됩니다 (xxxxx는 여러 줄로 나뉩니다). Firefox에서는 빨간색 상자의 xxxxx가 오버플로됩니다.

<div style="width:200px;background:red;"> 
 
    Hello <span style="word-break:break-all;">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</span> World 
 
</div> 
 

 
<div style="width:200px;background:blue;word-break:break-all;"> 
 
    Hello <span>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</span> World 
 
</div>

예 위에서 : https://jsfiddle.net/7scx4hfq/

정확하게 어떤 브라우저를 행동입니까? Firefox 버그 또는 Chrome 버그입니까?

더 중요한 것은 어떻게 모든 브라우저에서 원하는 효과를 얻을 수 있습니까?

참고, 블록 수준의 word-break:break-all 설정은 옵션이 아닙니다.

+0

div { background: yellow; width: 200px; white-space: nowrap; } span { background: aqua; word-break: break-all; word-wrap: break-word; white-space: normal; }
<div> Hello <span>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</span> World </div>

나는 항상 50 글자 단어의 사용 사례에 관한 혼란 스러워요. ** 실용적인 예를 생각해 낼 수 있습니까? –

+1

유스 케이스는 텍스트에서 철자가 지정된 긴 링크입니다. 일반적인 단어 나누기는 슬래시 "/"에서 URL을 단절 만하고 나머지 단어에 대해서는 매우 큰 못생긴 간격을 만듭니다. 여기를 참조하십시오 : https://jsfiddle.net/zL8ytno6/ 예를 들어 Flickr 및 Google 드라이브에 대한 링크와 같이보기 흉한 링크가 있습니다. – kaymes

답변

3

Firefox 용으로 word-wrap: break-word;을 추가 할 수 있습니다. 당신은 가능한 한 같은 라인에있는 모든 텍스트를 유지하려면

span { 
    word-break: break-all; /* for others */ 
    word-wrap: break-word; /* for Firefox */ 
} 

, 당신은 용기에 white-space: nowrap;을 설정하고 spanwhite-space: normal;으로 재설정 할 수 있습니다. 다시 말하지만, 이러한 설정은 Firefox 용입니다.

jsFiddle

+0

이렇게하면 텍스트가 더 이상 정상적으로 흐르지 않는 방식으로 범위의 동작이 변경됩니다. 이 예제에서는 "Hello"다음에 "World"앞에 줄 바꿈이 표시됩니다. https://jsfiddle.net/7scx4hfq/1/ – kaymes

+0

위의 내용을 업데이트했습니다. 단어 "Hello"가 안에 없으므로 div와 span에 줄 바꿈을 설정하면 결과가 동일하지 않습니다. – Stickers

+0

break-word는 최대한 많은 단어를 유지하려고하기 때문에 줄 바꿈이 똑같은 효과를냅니다. 텍스트가 정당화되면 특히 문제가됩니다. https://jsfiddle.net/7scx4hfq/3/ – kaymes

관련 문제