word-break 이런 문제가....

크로스브라우징 2011. 5. 31. 14:35
한글 단어자름 때문에 넣어두는 word-break 때문에 크롬이나 사파리에서 영문이 단어별로 잘리는게 아니라 글자 하나하나 잘리는 현상이 나타났다.

word-break:normal; 로 바꿔주면 해결. 이런 문제가 있었나.ㅡㅡ;ㅋ

css 를 같은 템플릿도 아니고 다른데 다 돌려쓰니 문제가 참 많네....



****예전부터 게속 쓰던 태그라 의심없이 썼었나보다. word-wrap 은 모든 브라우저 적용인데 왜 이걸 안쓰고....일단 이걸로 버전별 테스트 해봐야겠다.
/************************************************************************************/



이건 테이블에 데이터가 들어오는 경우...(게시판 같은거) 등등인듯

출처: http://www.mimul.com/pebble/default/2008/10/19/1224416040000.html

1. 브라우저별로 지원되는 word-break 속성
속성 Internet Explorer 5이상 Safari 3이상/Chrome
normal
keep-all ×
break-all

2. IE6, 7 적용 방안
 - class 나 style="word-break:break-all;" 식의 인라인 스타일

3. Firefox에서 임시 방편으로 적용 방안

 - overflow:hidden으로 사용하면 박스 레이아웃을 유지할 수 있음
 - 스크롤바가 하위에 생겨서 보기 싫음

4. jQuery를 활용한 Cross Browser애서 사용
 - FireFox나 Opera에서는 word-break:break-all 스타일이 비표준이라서 허용되지 않음
 - 다른 방법이 필요
 - Usage: $('[search]').breakWords();
 - 소스
  (function($) {
$.fn.breakWords = function() {
this.each(function() {
if(this.nodeType !== 1) { return; }

if(this.currentStyle
&& typeof this.currentStyle.wordBreak === 'string') {
this.runtimeStyle.wordBreak = 'break-all';
}
else if(document.createTreeWalker) {
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);
};

//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;
s = trim( node.nodeValue ).split('').join(c);
node.nodeValue = s;
}
}
});

return this;
};
})(jQuery);

[참고 사이트]
  • http://blog.stchur.com/2007/02/22/emulating-css-word-wrap-for-mozillafirefox/
  • http://snippets.dzone.com/posts/show/6271
  • http://www.hedgerwow.com/360/dhtml/css-word-break.html
  • http://blog.stevenlevithan.com/archives/faster-trim-javascript
: