웹을 작업하다 보면 텍스트가 줄바꿈 되지 않거나, 공백이 유지되지 않는 문제가 종종 발생합니다. 이럴 때 중요한 역할을 하는 것이 바로 white-space 속성입니다. 이 글에서는 white-space의 동작 방식과 속성값을 정리해보겠습니다.
white-space란?white-space는 HTML 요소 안의 공백(whitespace)과 줄바꿈을 어떻게 처리할지를 결정하는 CSS 속성입니다.
보통 HTML 코드 상의 연속된 공백은 하나로 합쳐지고, 줄바꿈도 무시되지만, white-space 값을 변경하면 이 동작을 제어할 수 있습니다.
normal (기본값)p {
white-space: normal;
}
👉 일반적인 문단 텍스트에 적용되는 기본 동작
nowrapp {
white-space: nowrap;
}
👉 버튼, 네비게이션 바 텍스트 등에 많이 활용
prep {
white-space: pre;
}
👉
<pre>태그와 동일한 동작
👉 코드 블록, 시(詩) 형태의 텍스트 출력 등에 사용
pre-wrapp {
white-space: pre-wrap;
}
👉 사용자 입력값(채팅, 게시판 글 등)을 그대로 보여주면서도 줄이 너무 길면 자동 줄바꿈 필요할 때 사용
pre-linep {
white-space: pre-line;
}
👉 시각적으로 깔끔하면서도 작성자가 의도한 줄바꿈을 유지할 수 있음
pre-wrap과 유사하지만,p {
white-space: break-spaces;
}
👉 공백을 의미 있는 데이터로 사용하는 특수한 경우에 사용
| 값 | 연속 공백 | 줄바꿈 문자 | 자동 줄바꿈 |
|---|---|---|---|
| normal | 합침 | 무시 | O |
| nowrap | 합침 | 무시 | X |
| pre | 유지 | 유지 | X |
| pre-wrap | 유지 | 유지 | O |
| pre-line | 합침 | 유지 | O |
| break-spaces | 유지 | 유지 | O (공백도 기준) |
.button {
white-space: nowrap;
}
.chat-message {
white-space: pre-wrap;
}
.poem {
white-space: pre-line;
}
white-space 속성은 단순히 "공백 처리"만 제어하는 게 아니라,
텍스트의 레이아웃과 가독성을 결정짓는 중요한 요소입니다.
상황에 맞게 nowrap, pre-wrap, pre-line 등을 활용하면 훨씬 유연하고 원하는 텍스트 표현을 할 수 있습니다.