웹 페이지에서 소프트 하이픈 문제를 어떻게 해결합니까? 텍스트에는 하이픈으로 줄 바꿈하려는 긴 단어가있을 수 있습니다. 그러나 전체 단어가 같은 줄에 있으면 하이픈을 표시하지 않으려 고합니다.
이 페이지의 의견에 따르면 <wbr>
비표준 “Netscape가 발명 한 태그 수프”입니다. ­
표준 준수에도 문제가있는 것 같습니다 . 모든 브라우저에서 작동하는 솔루션을 얻을 수있는 방법 이 없는 것 같습니다 .
소프트 하이픈을 처리하는 방법은 무엇이며 왜 선택 했습니까? 선호하는 솔루션이나 모범 사례가 있습니까?
답변
불행히도 ­
의 지원은 브라우저간에 매우 일관성이 없어서 실제로 사용할 수 없습니다.
QuirksMode가 옳습니다. HTML에서 소프트 하이픈을 사용하는 좋은 방법은 없습니다. 그들없이 갈 수있는 일을보십시오.
2013 편집 : 쿼크 모드에 따르면 , ­
현재 / 모든 주요 브라우저에서 지원됩니다 작동합니다.
답변
2015 년 2 월 요약 (2017 년 11 월 부분 업데이트)
­
구글은 여전히 그것을 포함하는 단어를 색인 할 수 있기 때문에 모두 잘 수행 합니다.
- 브라우저에서 :
­
그리고­
둘 다 주요 브라우저에서 예상대로 표시됩니다 (이전 IE!).<wbr>
최신 버전의 IE (10 또는 11)에서는 지원되지 않으며 Edge에서 제대로 작동하지 않습니다. - 복사하여 브라우저에서 붙여 넣을 때 : (2015 년 시험)에 대한 예상대로
­
및­
윈도우 (10)에, Mac에서 크롬과 파이어 폭스를 들어, 문자를 유지하고 그들을 지원하는 응용 프로그램에 메모장 보이지 않는 소프트 하이픈으로 하드 하이픈을 붙여 넣습니다. IE (win7)는 일부 응용 프로그램 (예 : MS Word)에서는 하이픈으로 붙여 넣는 방식으로 IE10에서도 항상 하이픈으로 붙여넣고 Safari (Mac) 사본은 붙여 넣습니다. - 페이지에서 찾기 를위한 작품
­
과­
(심지어 IE11까지)에만 정확히 일치하는 복사 및 붙여 넣은 일치 IE를 제외한 모든 브라우저에서 - 검색 엔진 : Google은
­
정상적으로 입력 된 단어가 포함 된 단어를 찾습니다. 2017 년 현재 더 이상 포함 된 단어와 일치하지 않는 것 같습니다­
. Yandex는 동일합니다. 빙과 바이두도 일치하지 않는 것 같습니다.
그것을 테스트
최신 실시간 테스트를 위해 부드러운 하이픈이있는 고유 한 단어의 예가 있습니다.
­
–confumbabbl­ication­ism
공자주의- ………………………………………….. ………………………………………….. ………. 혼란주의
- ………………………………………….. ………………………………………….. ………….. 혼란주의
<wbr>
– donfounbabbl<wbr>ication<wbr>ism
. 이 사이트는 <wbr/>
출력에서 제거 됩니다. 다음 은 테스트를위한 jsbin.com 스 니펫입니다 .
­
–eonfulbabbl­ication­ism
비영리 풍자주의- ………………………………………….. ………………………………………….. …………. 불완전한 바베큐 법
- ………………………………………….. ………………………………………….. ………………… 불완전한 바베큐 법
여기에는 부끄러운 하이픈이 없습니다 (페이지에서 찾기 테스트에 복사하여 붙여 넣기위한 것이며 검색 엔진 테스트를 중단하지 않는 방식으로 작성 됨).
ZZZconfumbabblicationismZZZdonfounbabblicationismZZZeonfulbabblicationismZZZ
여러 브라우저에 표시
성공 : 지정된 위치에서 끊어지고 하이픈을 넣을 때 끊어야하는 위치를 제외하고 일반 단어로 표시됩니다.
고장 : 비정상적으로 표시되거나 의도 한 장소에서 파손되지 않습니다.
- Chrome (40.0.2214.115, Mac) :
­
성공,<wbr>
성공,­
성공 - Firefox (35.0.1, Mac) :
­
성공,<wbr>
성공,­
성공 - Safari (6.1.2, Mac) :
­
성공,<wbr>
아직 테스트되지 않음 ,­
성공 - Edge (Windows 10) :
­
성공,<wbr>
실패 (중단하지만 하이픈 없음),­
성공 - IE11 (Windows 10) :
­
성공,<wbr>
실패 (휴식 없음),­
성공 - IE10 (Windows 10) :
­
성공,<wbr>
실패 (휴식 없음),­
성공 - IE8 (Windows 7) : 불규칙한 경우도 있지만 전혀 작동하지 않으며 모두 CSS를 따릅니다
word-wrap
. 때때로 그들은 모든 일을하는 것처럼 보입니다. 이유에 대한 명확한 패턴을 아직 찾지 못했습니다. - IE7 (Windows 7) :
­
성공,<wbr>
성공,­
성공
여러 브라우저에서 복사하여 붙여 넣기
성공 : 단어 전체를 복사하지 않고 붙여 넣습니다. (브라우저 검색, MS Word 2011 및 Sublime Text에 붙여 넣은 Mac에서 테스트)
실패 : 하이픈, 공백, 줄 바꿈 또는 정크 문자로 붙여 넣기
- Chrome (40.0.2214.115, Mac) :
­
성공,<wbr>
성공,­
성공 - Firefox (35.0.1, Mac) :
­
성공,<wbr>
성공,­
성공 - Safari (6.1.2, Mac) : MS Word에
­
실패 (모두 하이픈으로 붙여 넣기), 다른 응용 프로그램에서의 성공<wbr>
실패 , MS Word에­
실패 (모두 하이픈으로 붙여 넣기), 다른 응용 프로그램에서의 성공 - IE10 (Win7에가)
­
실패 , 모든 하이픈으로 페이스트를<wbr>
실패 ,­
실패 하이픈 모든 페이스트를 - IE8 (Win7에가)
­
실패 , 모든 하이픈으로 페이스트를<wbr>
실패 ,­
실패 하이픈 모든 페이스트를 - IE7 (Win7에가)
­
실패 , 모든 하이픈으로 페이스트를<wbr>
실패 ,­
실패 하이픈 모든 페이스트를
검색 엔진 일치
2017 년 11 월에 업데이트되었습니다. <wbr>
StackOverflow의 CMS가이를 제거했기 때문에 테스트되지 않았습니다.
성공 : 하이픈이없는 단어 전체를 검색하면이 페이지가 나타납니다.
실패 : 검색 엔진은 단어의 깨진 세그먼트 나 하이픈이있는 단어를 검색 할 때만이 페이지를 찾습니다.
- 구글 :
­
실패,­
성공 - Bing :
­
실패,­
실패 - 바이두는 :
­
, 실패­
(긴 문자열 내에서 조각을 일치 할 수 있지만, 자신의 단어를 포함하지 않는 실패­
또는­
) - Yandex :
­
실패,­
성공 (100 % 확실하지 않은 Baidu와 같은 문자열 조각과 일치 할 수 있음)
여러 브라우저에서 페이지에서 찾기
검색 엔진 일치로 성공 및 실패
- Chrome (40.0.2214.115, Mac) :
­
성공,<wbr>
성공,­
성공 - Firefox (35.0.1, Mac) :
­
성공,<wbr>
성공,­
성공 - Safari (6.1.2, Mac) :
­
성공,<wbr>
성공,­
성공 - IE10 (Win7에가)
­
실패 만은 모두 수줍음 하이픈 포함되어있는 경우 일치<wbr>
성공,­
실패 만이 모두 수줍음 하이픈을 포함 할 때 일치 - IE8 (Win7에가)
­
실패 만은 모두 수줍음 하이픈 포함되어있는 경우 일치<wbr>
성공,­
실패 만이 모두 수줍음 하이픈을 포함 할 때 일치 - IE7 (Win7에가)
­
실패 만은 모두 수줍음 하이픈 포함되어있는 경우 일치<wbr>
성공,­
실패 만이 모두 수줍음 하이픈을 포함 할 때 일치
답변
CSS3에서 하이픈 을 표준화 하기위한 지속적인 노력이 있습니다 .
일부 최신 브라우저, 특히 Safari 및 Firefox는 이미이를 지원합니다. 다음은 브라우저 지원에 대한 최신 정보입니다 .
CSS 하이픈이 보편적으로 구현되면 이것이 가장 좋은 해결책이 될 것입니다. 한편, 나는 추천 할 수 하이픈 붙이기를 – JS 스크립트를 그 특정 브라우저에 가장 적합한 방법으로 텍스트를 하이픈하는 방법을 그림.
하이픈 :
- LaTeX 및 OpenOffice에서 일반적으로 알려진 Franklin M. Liangs 하이픈 알고리즘 에 의존합니다 .
- 가능한 경우 CSS3 하이픈을 사용합니다.
­
대부분의 다른 브라우저에 자동 삽입- 여러 언어를 지원합니다
- 고도로 구성 가능하며
- 자바 스크립트가 활성화되지 않은 경우 정상적으로 작동합니다.
나는 그것을 사용했고 훌륭하게 작동합니다!
답변
­
필요한 경우 수동으로 삽입하여을 사용 합니다.
나는 항상 사람들이 기술을 사용하지 않는 것이 안타깝다는 것을 알고 있습니다. 왜냐하면 오래되었거나 이상한 브라우저가 있기 때문에 브라우저가 지정된 방식으로 처리하지 못하기 때문입니다. ­
최신 Internet Explorer 및 Firefox 브라우저 모두에서 제대로 작동하는 것으로 나타났습니다 . 사람들에게 이상한 브라우저를 사용하는 경우 성인물을 사용하거나 스스로 위험을 감수하도록 지시하는 브라우저 검사를 포함 할 수 있습니다.
Syllabification은 쉽지 않으므로 Javascript로 남겨 두는 것이 좋습니다 . 언어 별 주제이며 텍스트를 자극하지 않으려면 데스크 맨이 신중하게 수정해야 할 수도 있습니다. 독일어와 같은 일부 언어는 복합 단어를 형성하며 분해 문제를 일으킬 수 있습니다. 예를 들어 Spargelder
( 배균 저축 돈, pl.)은 음절 규칙에 따라 두 곳에 포장 될 수 있습니다 ( Spar-gel-der
). 그러나 그것을 두 번째 위치로 감싸서 첫 번째 부분을 Spargel-
( 배아 아스파라거스) 로 표시 하여 독자의 머리에 완전히 잘못된 개념을 활성화하여 피해야합니다.
그리고 문자열은 Wachstube
어떻습니까? ‘보호실'( Wach-stu-be
) 또는 ‘왁스 튜브 ‘( ) 를 의미 할 수 있습니다 Wachs-tu-be
. 다른 언어로 된 다른 예제도있을 수 있습니다. 모든 핵심 단어를 교정하여 잘 정리 된 텍스트를 작성하는 데 데스크 맨이 지원 될 수있는 환경을 제공해야합니다.
답변
HTML5에서 <wbr>
와 ­
똑같은 일을해서는 안된다는 것을 아는 것이 매우 중요합니다 !
부드러운 하이픈
­
소프트 하이픈, 즉 U + 00AD : SOFT HYPHEN입니다. 예를 들어
innehålls­förteckning
로 렌더링 될 수 있습니다
innehållsförteckning
또는
innehålls-
förteckning
현재 소프트 하이픈은 Firefox, Chrome 및 Internet Explorer에서 작동합니다.
wbr
요소
그만큼 wbr
요소 는 단어 분리 기회이며 줄 바꿈이 발생하면 하이픈이 표시되지 않습니다. 예를 들어
ABCDEFG<wbr/>abcdefg
로 렌더링 될 수 있습니다
ABCDEFGabcdefg
또는
ABCDEFG
abcdefg
현재이 요소는 Firefox 및 Chrome에서 작동합니다.
답변
폭 이 0 인 공간 엔티티는 <wbr>
거의 모든 플랫폼에서 안정적으로 태그 대신 사용될 수 있습니다 .
​
휴식을 금지하는 데 사용될 수있는 단어 결합 자 엔티티 도 유용합니다 . 휴식을 원하는 곳을 제외하고 단어의 각 문자 사이에 삽입하십시오.
⁠
이 두 가지로 무엇이든 할 수 있습니다.
답변
이것은 클라이언트에서 실행되고 jQuery를 사용하여 조금 전에 살펴본 크로스 브라우저 솔루션입니다.
(function($) {
$.fn.breakWords = function() {
this.each(function() {
if(this.nodeType !== 1) { return; }
if(this.currentStyle && typeof this.currentStyle.wordBreak === 'string') {
//Lazy Function Definition Pattern, Peter's Blog
//From http://peter.michaux.ca/article/3556
this.runtimeStyle.wordBreak = 'break-all';
}
else if(document.createTreeWalker) {
//Faster Trim in Javascript, Flagrant Badassery
//http://blog.stevenlevithan.com/archives/faster-trim-javascript
var trim = function(str) {
str = str.replace(/^\s\s*/, '');
var ws = /\s/,
i = str.length;
while (ws.test(str.charAt(--i)));
return str.slice(0, i + 1);
};
//Lazy Function Definition Pattern, Peter's Blog
//From http://peter.michaux.ca/article/3556
//For Opera, Safari, and Firefox
var dWalker = document.createTreeWalker(this, NodeFilter.SHOW_TEXT, null, false);
var node,s,c = String.fromCharCode('8203');
while (dWalker.nextNode()) {
node = dWalker.currentNode;
//we need to trim String otherwise Firefox will display
//incorect text-indent with space characters
s = trim( node.nodeValue ).split('').join(c);
node.nodeValue = s;
}
}
});
return this;
};
})(jQuery);