white-space, text-overflow, word-wrap, word-break 속성 정리
볼 때 마다 헷갈리는 속성들이라 따로 정리함
1. white-space
- space, tab, line break 세 가지를 white space라고 함
- html은 기본적으로 white space를 연속으로 아무리 입력해봤자 space 한 번만 적용됨 (줄바꿈도 무시)
- 텍스트는 기본적으로 요소의 width를 벗어나지 않고 자동 줄바꿈 됨
white-space는 이러한 공백에 관련된 설정들을 다루는 속성이다.
속성값 | line break | space/tab | 자동줄바꿈 |
---|---|---|---|
normal | 무시 | 1번만 | O |
nowrap | 무시 | 1번만 | X |
pre | 반영 | 무제한 | X |
pre-wrap | 반영 | 무제한 | O |
pre-line | 반영 | 1번만 | O |
2. text-overflow
요소에서 삐져나간(자동줄바꿈이 되지 않은) 텍스트의 처리 방법을 정의. 이 속성을 사용하려면 몇 가지 조건이 충족되어야 함.
- white-space: nowrap (자동줄바꿈이 되지 않은 텍스트에 대해서 정의하는 속성이기 때문에)
- width가 지정되어야 함. (즉, display속성은 block or inline-block 이어야 함)
- overflow 속성이 visible 말고 다른 속성으로 지정되어야 함 (hidden, scroll, auto, ...등등)
위의 조건들을 충족하면 text-overflow 속성이 적용된다.
- clip : 영역을 벗어난 텍스트를 표시하지 않음 (기본값)
- ellipsis : 영역을 벗어난 텍스트를 표시하지 않고 말줄임표(...)를 뒤에 표시한다
3. word-wrap
단어의 길이가 길어서 영역을 벗어난 텍스트의 처리 방법을 정의 apple, banana 등은 단어의 길이가 짧지만 asdkfjaklsdjfklasdjfklasjdfkljasdlfjsadlfdsaklfjfklsadjf 같은 단어는 길이가 매우 길다.
- normal: 단어의 길이가 길면 삐져나감 (기본값)
- break-word: 단어의 길이가 길면 줄바꿈
4. word-break
단어의 길이가 길어서 영역을 벗어난 텍스트의 처리 방법을 정의
- normal: 단어의 길이가 길면 삐져나감 (기본값)
- break-all: 단어의 길이가 길면 줄바꿈 (가차없이)
- keep-all: 엔터나 스페이스를 기준으로 자름. 공백이 없다면 줄바꿈 되지 않음.
word-wrap과 word-break는 참 여러모로 애매모호한 점이 많은 것 같다...