![]()
HTML에서의 공백 처리

HTML에서는 여러 가지 방법으로 공백을 표현할 수 있습니다. 일반적으로는 띄어쓰기(\s), 들여쓰기(\t), 줄바꿈(\n) 등이 있으며, 이러한 문자들은 웹 브라우저에서 연속적으로 사용되더라도 하나의 공백으로 처리되는 경우가 많습니다.
white-space 속성이 기본적으로 normal로 설정되어 있기 때문입니다. 기본적으로 white-space: normal;로 설정된 요소 안에서는 연속된 띄어쓰기, 줄바꿈, 들여쓰기가 모두 무시되고, 텍스트의 길이가 부모 요소의 가로폭을 초과할 경우 자동으로 줄바꿈이 발생합니다.이러한 특성으로 인해, 개발자들은 공백을 자유롭게 조절하기 위해 white-space 속성을 활용하게 됩니다. 아래의 표는 HTML 문서 내에서의 공백 처리 방식을 정리한 것입니다.
| 공백 문자 | 설명 |
|---|---|
\s |
띄어쓰기 |
\t |
들여쓰기 |
\n |
줄바꿈 |
HTML 문서에서 공백은 종종 간과되기 쉬운 요소입니다. 그러나 이 공백 처리 방식을 이해하는 것은 웹 페이지의 가독성을 높이는 데 중요한 역할을 합니다.
예를 들어, 사용자가 읽기 쉬운 형태로 텍스트를 표시하기 위해서는 적절한 공백 처리가 필수적입니다.white-space 속성의 기본값 normal

white-space 속성의 기본값인 normal은 연속된 공백 문자와 줄바꿈을 무시하고, 한 번의 공백으로 처리합니다. 이 속성이 적용된 요소 내에서는 텍스트가 너무 길어져 부모 요소의 가로폭을 넘어갈 경우 자동으로 줄바꿈이 이루어집니다.
normal 속성이 적용된 요소에서는 다음과 같은 동작이 발생합니다.
- 연속된 띄어쓰기와 줄바꿈은 모두 하나의 공백으로 처리됩니다.
- 텍스트가 부모 요소의 가로폭을 초과할 경우 자동으로 줄바꿈이 발생합니다.
- 줄바꿈 문자(
\n)를 사용하여 수동으로 줄바꿈을 적용할 수 없습니다.
이러한 특성으로 인해 normal 속성은 일반적인 텍스트 콘텐츠에 적합하지만, 특정한 레이아웃이나 디자인 요구사항이 있을 경우에는 다른 white-space 속성을 고려해야 할 필요가 있습니다. 아래의 표는 normal 속성의 동작 방식을 요약한 것입니다.
| 동작 | 설명 |
|---|---|
| 공백 처리 | 연속된 공백을 하나의 공백으로 처리 |
| 줄바꿈 | 자동 줄바꿈 발생 |
| 수동 줄바꿈 | 불가능 |
white-space: normal;은 매우 일반적인 설정이지만, 특정한 디자인 요구사항에 맞추기 위해서는 다른 속성을 활용해야 할 수 있습니다.
줄바꿈 금지 nowrap
때때로, 개발자는 텍스트가 자동으로 줄바꿈되지 않도록 하고 싶어할 수 있습니다. 이럴 때는 white-space 속성을 nowrap으로 설정하면 됩니다.
nowrap 속성이 적용되면 다음과 같은 동작이 이루어집니다.
- 연속된 띄어쓰기는 하나의 공백으로 처리됩니다.
- 자동 줄바꿈이 발생하지 않으며, 텍스트는 한 줄로 유지됩니다.
이러한 특성으로 인해 nowrap 속성은 특정한 요소가 줄바꿈 없이 한 줄로 유지되어야 할 때 유용하게 사용됩니다. 예를 들어, 버튼이나 네비게이션 바 같은 요소에서는 텍스트가 자동으로 줄바꿈되지 않도록 설정하는 것이 일반적입니다.
nowrap 속성의 동작 방식을 정리한 것입니다.
| 동작 | 설명 |
|---|---|
| 공백 처리 | 연속된 공백을 하나의 공백으로 처리 |
| 줄바꿈 | 자동 줄바꿈 발생하지 않음 |
| 수동 줄바꿈 | 불가능 |
이처럼 nowrap 속성을 통해 줄바꿈을 방지할 수 있지만, 이 경우 텍스트가 너무 길어지면 부모 요소의 너비를 초과하게 되어 화면 밖으로 나가거나 숨겨질 수 있습니다. 이럴 경우, overflow 속성을 활용하여 숨기거나 스크롤바를 표시하는 등의 추가적인 조치를 취해야 합니다.
공백과 줄바꿈을 보존하는 pre
white-space 속성을 pre로 설정하면 HTML 요소 내의 모든 공백과 줄바꿈이 그대로 유지됩니다. 이는 마치 HTML의 <pre> 요소와 유사한 효과를 나타내며, 코드나 특정한 포맷의 텍스트를 웹 페이지에 표시할 때 유용합니다.
pre 속성을 사용할 수 있습니다. pre 속성이 적용되면 다음과 같은 동작이 이루어집니다.
- 연속된 띄어쓰기를 포함한 모든 공백과 줄바꿈이 그대로 유지됩니다.
- 텍스트가 너무 길어지면 부모 요소 밖으로 넘어갈 수 있습니다.
이러한 특성 덕분에 pre 속성은 텍스트를 있는 그대로 보여주고 싶을 때 매우 유용하게 사용됩니다. 그러나 긴 행이 부모 요소를 초과할 경우에는 스크롤바가 나타나지 않으므로, 이를 방지하기 위해 overflow 속성을 auto로 설정하여 자동으로 스크롤바가 나타나게 할 수 있습니다.
pre 속성의 동작 방식을 정리한 것입니다.
| 동작 | 설명 |
|---|---|
| 공백 처리 | 모든 공백과 줄바꿈을 그대로 유지 |
| 줄바꿈 | 자동 줄바꿈 발생하지 않음 |
| 수동 줄바꿈 | 불가능 |
pre 속성은 개발자들이 코드를 보여줄 때 매우 유용하지만, 일반적인 텍스트 콘텐츠에 사용하기에는 부적합할 수 있습니다. 이를 잘 활용하면 사용자에게 필요한 정보를 효과적으로 전달할 수 있습니다.
줄바꿈이 가능한 pre-wrap
pre-wrap 속성은 pre와 유사하게 공백과 줄바꿈을 그대로 유지하지만, 긴 행이 있을 경우 자동으로 줄바꿈이 발생하여 텍스트가 부모 요소의 너비를 초과하지 않도록 합니다. 이는 긴 텍스트를 포함하는 요소에서 유용하게 사용될 수 있습니다.
pre-wrap 속성이 적용되면 다음과 같은 동작이 이루어집니다.
- 연속된 띄어쓰기와 줄바꿈은 그대로 유지됩니다.
- 긴 행이 있을 경우 자동으로 줄바꿈이 발생합니다.
이러한 특성 덕분에 pre-wrap 속성은 텍스트가 길어도 가독성을 유지할 수 있도록 돕습니다. 아래의 표는 pre-wrap 속성의 동작 방식을 정리한 것입니다.
| 동작 | 설명 |
|---|---|
| 공백 처리 | 모든 공백과 줄바꿈을 그대로 유지 |
| 줄바꿈 | 긴 행일 경우 자동 줄바꿈 발생 |
| 수동 줄바꿈 | 가능 (줄바꿈 문자 사용 가능) |
pre-wrap 속성은 텍스트가 길어지는 경우에도 가독성을 유지할 수 있는 좋은 방법입니다. 따라서 다양한 상황에서 활용될 수 있는 유용한 속성입니다.
줄바꿈 문자만 처리하는 pre-line
pre-line 속성은 줄바꿈 문자만을 유지하고, 연속된 띄어쓰기와 들여쓰기는 모두 하나의 공백으로 처리합니다. 이 속성은 줄바꿈은 필요하지만, 연속된 공백은 불필요한 경우에 적합합니다.
pre-line 속성이 적용되면 다음과 같은 동작이 이루어집니다.
- 줄바꿈 문자는 그대로 유지됩니다.
- 연속된 공백은 하나의 공백으로 처리됩니다.
이러한 특성 덕분에 pre-line 속성은 줄바꿈이 필요한 경우에 유용하게 사용될 수 있습니다. 그러나 활용 사례는 그리 흔하지 않을 수 있습니다.
pre-line 속성의 동작 방식을 정리한 것입니다.
| 동작 | 설명 |
|---|---|
| 공백 처리 | 연속된 공백을 하나의 공백으로 처리 |
| 줄바꿈 | 줄바꿈 문자는 그대로 유지 |
| 수동 줄바꿈 | 가능 (줄바꿈 문자 사용 가능) |
결론
이번 글에서는 CSS의 white-space 속성을 활용하여 HTML 요소 내의 공백 처리 방식을 제어하는 법에 대해 살펴보았습니다. 다양한 속성을 통해 연속된 공백, 줄바꿈 등을 어떻게 처리할 수 있는지 이해하는 것은 웹 개발에서 매우 중요합니다.