white-space 속성으로 공백과 줄바꿈 제어하기
white-space 속성의 다양한 값들을 활용해 공백, 탭, 줄바꿈을 자유자재로 제어하는 방법을 학습합니다.
웹 개발을 하다 보면 텍스트의 공백과 줄바꿈을 원하는 대로 제어하고 싶을 때가 있습니다. 코드 블록을 예쁘게 보여주거나, 시나 주소처럼 줄바꿈이 중요한 콘텐츠를 표시할 때 말이죠. 바로 이때 white-space 속성이 빛을 발합니다!
white-space가 제어하는 것들
white-space 속성이 제어하는 건 크게 세 가지예요. 스페이스와 탭 같은 공백 문자의 처리 방식, 줄바꿈 문자(\n)의 처리 방식, 그리고 자동 줄바꿈 여부입니다.
단계. 기본 동작 이해하기
HTML에서는 기본적으로 연속된 공백이 하나로 합쳐지고, 줄바꿈 문자는 무시됩니다.
<!-- HTML -->
<div>
여러 공백과
줄바꿈이
있는 텍스트
</div>단계. white-space로 제어하기
white-space 속성으로 이런 기본 동작을 바꿀 수 있습니다!
div {
white-space: pre; /* 공백과 줄바꿈을 그대로 유지 */
}핵심 속성값들 완전 정복
각 속성값이 실제로 어떻게 다른지 좁은 컨테이너에 같은 텍스트를 넣고 비교해볼게요.
각 값의 차이점을 눈으로 확인해보세요! 컨테이너의 너비가 좁아서 자동 줄바꿈이 어떻게 다르게 동작하는지 알 수 있습니다.
속성값별 상세 분석
normal (기본값)
• 연속 공백 → 하나로 합침 • 줄바꿈 문자 → 무시 • 자동 줄바꿈 → O 가장 일반적인 텍스트 표시 방식입니다.
nowrap
• 연속 공백 → 하나로 합침 • 줄바꿈 문자 → 무시 • 자동 줄바꿈 → X 한 줄로만 표시하고 싶을 때 사용합니다.
pre
• 연속 공백 → 그대로 유지 • 줄바꿈 문자 → 그대로 유지 • 자동 줄바꿈 → X <pre> 태그와 동일한 동작입니다.
pre-wrap
• 연속 공백 → 그대로 유지 • 줄바꿈 문자 → 그대로 유지 • 자동 줄바꿈 → O 코드 블록에서 가장 많이 사용됩니다!
pre-line
• 연속 공백 → 하나로 합침 • 줄바꿈 문자 → 그대로 유지 • 자동 줄바꿈 → O 시나 주소 같은 텍스트에 적합합니다.
실무 활용 패턴
1. 코드 블록 스타일링
코드 블록에서는 들여쓰기와 줄바꿈을 그대로 살려야 읽힙니다. 이럴 때 pre-wrap이 가장 자주 쓰여요.
2. 주소나 시 표시하기
주소나 시는 줄바꿈은 살리되 중간에 낀 불필요한 공백은 한 칸으로 정리되는 게 자연스럽죠. 이럴 땐 pre-line이 딱입니다.
3. 긴 텍스트 한 줄 유지하기
테이블 셀이나 내비게이션 메뉴에서는 텍스트가 한 줄로 유지되어야 할 때가 많습니다. 이럴 땐 nowrap을 overflow와 함께 쓰는 게 정석이에요.
nowrap을 사용할 때는 overflow: hidden과 text-overflow: ellipsis를 함께 사용하여 텍스트가 컨테이너를 벗어나지 않도록 주의하세요!
브라우저 호환성과 주의사항
white-space 속성은 모든 주요 브라우저에서 잘 지원됩니다. IE 8+에서도 사용 가능하니 안심하고 사용하세요.
다만 몇 가지는 기억해두는 게 좋습니다. 성능 측면에서 pre나 pre-wrap은 매우 긴 텍스트의 렌더링에 부담을 줄 수 있고요. 접근성 관점에서는 스크린 리더가 공백과 줄바꿈을 어떻게 읽을지 따로 고민이 필요합니다. 그리고 모바일처럼 좁은 화면에서는 nowrap보다 pre-wrap이나 pre-line이 훨씬 안전한 선택이 되는 경우가 많아요.
마무리
white-space 속성을 마스터하면 텍스트 레이아웃을 훨씬 정교하게 제어할 수 있습니다. 특히 코드 블록, 시, 주소 같은 특별한 형식의 텍스트를 다룰 때 필수적인 도구입니다.
다음 편에서는 word-break와 white-space를 조합한 실무 패턴들을 살펴보겠습니다. 반응형 디자인에서 텍스트가 어떻게 동작해야 하는지, 다국어 사이트에서는 어떤 점을 고려해야 하는지 등 실전 노하우를 공유해드릴게요!
지금까지 학습한 내용을 바탕으로 여러분만의 텍스트 컴포넌트를 만들어보세요. white-space의 각 값들을 직접 실험해보는 것이 가장 좋은 학습 방법입니다.