0

­은 특히 모든 인기있는 브라우저에서 작동하기 때문에 훌륭합니다. 단어의 중간에 넣으면 브라우저에 이라는 단어가 일 수 있음을 알립니다. 깨진 경우 하이픈이 나타납니다. 그렇지 않으면 캐릭터는 보이지 않습니다.CMS에서 부드러운 하이픈을 추가하십시오. Chrome에서 작동하도록하려면

콘텐츠 작성자는 사용하기 쉽지 않습니다. HTML을 추가해야합니다. 으로 추가해도 CMS에 추가하면 삽입 한 즉시 볼 수 없습니다.

그래서 저자가 사용하기 위해 CMS에서 인라인 스타일을 선언했습니다. 그들은 단어의 일부를 선택할 수 있습니다 (예 : <span class="shy">communi</span>cation). 그러면 CSS 규칙이 의사 요소를 사용하여 &shy;을 마술처럼 추가합니다! 그리고 일부 CMS 관련 CSS에서는 그 태그에 점선 밑줄을 붙이면 그 부드러운 하이픈 중 하나가 있다는 것을 나타낼 수 있습니다. Firefox 및 IE8 +에서 작동합니다. 산뜻한.

하지만 Google 크롬에는 하이픈이 표시되지 않습니다! 그것은 단어를 깨지 만 대시는 없습니다. hyphens CSS 속성을 지원하지 않지만 일반적으로 &shy;을 지원합니다.

하지만 CSS 스타일을 제거하고로드시 ­을 추가하는 자바 스크립트를 작성했습니다. jQuery를 사용하여 .append.after을 모두 시도했습니다. 나는 심지어 innerHTML += '&shy;'을 시도했다. 그들 중 누구도 일하지 않는다! 얼마나 실망 스럽습니까 ...

어떻게 해결할 수 있습니까?

+0

문제를 해결하는 것 같은데. 콘텐츠 작성자에게 SOFT HYPHEN 문자 자체를 입력하도록 지시하는 방법을 고려해야합니다. (그것에 대한 많은 다른 접근 방식이 있지만, SO에서 주제가 아닙니다.) –

+0

해당 문자를 입력 할 수만 있다면 문제의 절반 만 해결할 수 있습니다. 한 번만 생성 된 게시물에는 문제가 없지만 더 자주 편집되는 페이지에 대한 임시 해결책. 다음날 편집을하는 동안 캐릭터를 넣는 위치를 잊어 버렸을 수도 있고, 캐릭터를 넣을 수도 있습니다. 비록 당신이 알고 있더라도, 그것을 제거하는 것은 명백하지 않고, 우연히 그리고 무의식적으로 제거하기 쉽습니다. 그래서 시각적으로 분명하게 보이고 싶었습니다. – Sygmoral

답변

0

이 질문을 작성하는 동안 해결책을 찾았습니다.

&shy;은 바로 뒤에 다른 문자가있는 경우에만 Chrome에서 작동하는 것 같습니다 ( 앞에 있음). 위의 문제는 &shy; 문자가 항상 태그 내의 마지막 문자라는 것입니다. 그래서 나는 공간을 추가하고 그 공간을 CSS로 닫았다. 불행히도 이것은 CSS 의사 요소와 작동하지 않기 때문에 여전히 자바 스크립트가 필요합니다.

공간을 추가하면 Internet Explorer 및 Firefox에서 작동이 중지되므로 브라우저 검색을 사용해야했습니다.

$(".shy").each(function(){ 
    this.innerHTML += '&shy; '; // add the soft hyphen (for all browsers) 

    // Only Chrome has an issue 
    if(/chrom(e|ium)/.test(navigator.userAgent.toLowerCase())) { 
     this.innerHTML += ' '; // add a space 
     $(this).css('margin-right', '-.26em'); // close the gap from the space 
    } 
}); 

이 같이 사용하는 (&nbsp;을 사용하면 파이어 폭스에서 작동하게,하지만 IE) :

<span class="shy">communi</span>cation