develop/CSS

[CSS] overflow-wrap/word-wrap, word-break - 줄 바꿈 스타일

ye.ha 2023. 6. 26. 15:18


overflow-wrap / word-wrap

인라인 요소에 적용되는 속성으로 단어가 박스 밖으로 넘치지 않게 줄 바꿈을 설정할 때 사용하는 속성.

즉, 한 라인에서 단어가 넘칠 경우 이를 어떻게 처리할지에 대해 설정하는 속성.

초기에 표준이 아닌 word-wrap 속성으로 대부분의 브라우저에서 구현되었는데,

overflow-wrap으로 속성명을 재정의 하여 word-wrap과 overflow-wrap은 동일한 속성명으로 사용되고 있다.

 

/* 1. overflow-wrap */
overflow-wrap: normal;
overflow-wrap: anywhere;
overflow-wrap: break-word;

/* 2. word-wrap */
word-wrap: normal;
word-wrap: break-word;

normal

보통의 줄 바꿈 지점에서만 줄 바꿈이 된다. (두 단어 사이의 공백과 같은 보통의 줄 바꿈 지점)

따라서, 단어가 길 경우 줄 바꿈이 되지 않고 넘치는 경우가 생길 수도 있다.

anywhere

컨테이너를 넘치게 되면 어느 곳에던 줄 바꿈이 생긴다. 만약 하나의 긴 단어가 컨테이너를 넘어간다면 단어가 짤릴 수가 있다.

break-word

anywhere과 기능적으로 동일하다. anywhere와의 차이점은 min-content를 계산하는 방식에서 차이가 난다. break-word는 min-content를 계산할 때 soft wrap(브라우저 및 기타 사용자 에이전트에서 허용된 중단점에서 컨텐츠를 wrap 하는 것)을 고려하지 않지만, anywhere은 이를 고려한다. (하지만 이 차이는 실제 실무에서 유의미한 차이가 있는거 같진 않아서 거의 유사하다고 생각하면 될거 같다.)

 

🌎 브라우저 지원범위

- 일부 브라우저에서 예전 속성명인 "word-wrap"으로 써야 적용

- https://caniuse.com/?search=overflow-wrap

 

word-break

단어가 넘칠 경우 단어를 어디서 끊을지 정확한 지점을 설정할 때 사용하는 속성.즉, overflow-wrap/word-wrap이 컨텐츠 내에서 넘치는 단어의 줄바꿈에 대해 설정하는 것이라면 word-break은 단어 자체의 줄바꿈 되는 지점(soft wrap)을 지정하는 속성이다.

 

word-break: normal;
word-break: break-all;
word-break: keep-all;
word-break: break-word; /* deprecated */

normal

기본 줄 바꿈 규칙을 사용한다.

break-all

어떤 문자에서든 줄 바꿈이 발생할 수 있다. (CJK 제외)

keep-all

CJK에서는 줄을 바꿀 때 단어를 끊지 않는다. CJK가 아닌 언어에서는 normal과 동일하다.
break-word  (deprecated)

제거된 속성이지만 레거시 이유로 브라우저에서 여전히 지원하고 있다.

word-break: normal 및 overflow-wrap: anywhere를 설정한 것과 같은 효과가 나타난다.

 

🌎 브라우저 지원범위

- https://caniuse.com/?search=word-break

 

📚 참고

- https://developer.mozilla.org/ko/docs/Web/CSS/overflow-wrap
- https://www.w3schools.com/cssref/css3_pr_word-wrap.php

- https://developer.mozilla.org/en-US/docs/Web/CSS/word-break

- https://blog.logrocket.com/guide-css-word-wrap-overflow-wrap-word-break/





'develop > CSS' 카테고리의 다른 글

[CSS] :autofill - input 자동완성 스타일 제어하기  (0) 2023.04.12