TL;DR


박스 영역을 벗어나거나, 불필요한 공백이 생기는 등 대부분의 줄바꿈 문제는 아래 두 속성으로 해결할 수 있다.

word-break: break-all; /* 음절(글자)를 기준으로 줄바꿈 */
word-wrap: break-word; /* 영역을 넘친 단어 분리(줄바꿈) */

word-break


<aside> 💡 줄바꿈할 중단점의 기준을 바꿀 수 있는 속성

</aside>

word-break 속성은 글자를 어떻게 분리해서 줄바꿈할지 결정하는 속성이다. CJK는 음절(글자), non-CJK는 공백과 - 하이픈이 기본 중단점이다. word-break 속성으로 줄바꿈할 중단점의 기준을 바꿀 수 있다. 아래는 언어별 속성 값에 따라 달라지는 중단점을 정리한 표 — WIT 블로그 참고

normal (기본값) break-all keep-all (CJK만 해당)
non-CJK 띄어쓰기, - (하이픈) 음절 띄어쓰기, - (하이픈)
CJK 음절 음절 띄어쓰기, - (하이픈), 그 외 기호

정리하면 중국어/일본어/한국어는 기본적으로 음절(글자)를 기준으로 줄바꿈되며, keep-all 속성을 사용하면 띄어쓰기 -(하이픈) 기호 지점에서 줄바꿈된다*(ex 박스 영역 끝 지점에 띄어쓰기가 있다면 다음 줄로 넘어감)*

영어를 포함한 그 외 언어는 기본적으로 띄어쓰기 -(하이픈)을 기준으로 줄바꿈 되며, break-all 속성을 사용하면 음절(글자)를 기준으로 줄바꿈 된다.

Untitled

<aside> 💡 ... !!! 처럼 마침표/느낌표 등 연속적인 “기호”는 중단점이 음절(break-all)이라도 박스 영역을 벗어나게 된다. 이땐 word-wrap: break-word; 속성을 사용해서 줄바꿈할 수 있다.

</aside>

만약 아래처럼 음절 단위가 중단점이 아닐 때(CKJ는 keep-all, non-CJK는 normal keep-all), 박스 영역의 가로 값 보다 긴 단어가 있다면 다음 중단점을 만날 때까지 박스를 벗어난다.

코드펜 링크

코드펜 링크



word-wrap (overflow-wrap)