텍스트의 공백 처리
그동안 보면 html태그에 공백을 여러개 넣어도 그 공백은 하나로 처리되었습니다.
무슨말 이냐구요? 다음 예제의 결과를 봅시다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>white-space :: coreasur</title> </head> <body> <p>에버디벨에 방문해 주셔서 감사합니다.</p> </body> </html>
위 코드의 결과
위의 이미지를 보면 코드와 달리 공백이 길게 표시되어있지 않습니다.
이제 이 공백을 처리하는 방법에 대해 학습할거에요.
white-space속성을 사용합니다. 위의 코드처럼 연속된 공백을 그대로 웹브라우저에 띄우려면 값으로 pre류의 값을 사용합니다.
pre류의 값은 pre, pre-wrap, pre-line이 있습니다.
pre : 공백을 그대로 표시하며 박스의 영역밖을 벗어나서 텍스트를 표시합니다.
white-space:pre 속성 사용 방법
선택자{white-space:pre}
다음은 pre가 공백을 그대로 표시하면서 박스를 넘어가지 않고 줄바꿈을 하는 예제입니다.
박스는 하늘색 영역으로 표시하겠습니다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>white-space :: coreasur</title> <style> div{width:180px;height:100px;background:skyblue} p{white-space:pre} </style> </head> <body> <div> <p>에버디벨에 방문해 주셔서 감사합니다.</p> </div> </body> </html>
위 코드의 결과
위의 이미지를 보면 공백을 있는 그대로 표시하면서 박스의 영여을 벗어나서 텍스트를 표시합니다.
다음은 pre-wrap입니다.
pre-wrap : 공백을 그대로 표시하며 박스의 영역을 벗어나지 않고 줄바꿈합니다.
다음은 pre-wrap를 사용한 예제입니다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>white-space :: coreasur</title> <style> div{width:180px;height:100px;background:skyblue} p{white-space:pre-wrap} </style> </head> <body> <div> <p>에버디벨에 방문해 주셔서 감사합니다.</p> </div> </body> </html>
위 코드의 결과
위 이미지를 있는 그대로 표시하면서 박스의 영역을 벗어나지 않기 위해 줄바꿈했습니다.
다음은 pre류의 값이지만 연속된 공백을 하나로 처리하면서 박스를 벗어나지 않는 pre-line입니다.
pre-line : 공백을 하나로 처리하고 박스를 벗어나지 않습니다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>white-space :: coreasur</title> <style> div{width:180px;height:100px;background:skyblue} p{white-space:pre-line} </style> </head> <body> <div> <p>에버디벨에 방문해 주셔서 감사합니다.</p> </div> </body> </html>
위 코드의 결과
결과를 보면 공백을 하나로 처리하고 박스의 영역을 벗어나지 않기 위해 줄바꿈을 했습니다.
다른 값으로 nowrap가 있습니다.
nowrap : 공백을 하나로 처리하고 박스를 벗어납니다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>white-space :: coreasur</title> <style> div{width:180px;height:100px;background:skyblue} p{white-space:nowrap} </style> </head> <body> <div> <p>에버디벨에 방문해 주셔서 감사합니다.</p> </div> </body> </html>
위 코드의 결과
위 결과를 보면 nowrap을 사용해서 공백을 하나로 처리하고 박스의 영역을 벗어납니다.
다음으로 기본값인 normal입니다. 다음 예제를 봅시다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>white-space :: coreasur</title> <style> div{width:180px;height:100px;background:skyblue} .box2 p{white-space:normal} </style> </head> <body> <div> <p>(미적용)에버디벨에 방문해 주셔서 감사합니다.</p> </div> <div class='box2'> <p>(normal 적용)에버디벨에 방문해 주셔서 감사합니다.</p> </div> </body> </html>
위 코드의 결과
결과를 보면 기본값인 normal은 연속된 공백을 하나로 처리하고 박스를 벗어나지 않기 위해 줄바꿈을 하는것을 알 수 있습니다.
그럼 하나의 예제로 지금까지 학습한 속성을 다 사용해 봅시다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>white-space :: coreasur</title> <style> div{width:180px;height:100px;background:skyblue;margin-bottom:10px} .box2 p{white-space:pre-wrap} .box3 p{white-space:pre-line} .box4 p{white-space:pre} .box5 p{white-space:nowrap} .box6 5{white-space:normal} </style> </head> <body> <div> <p>(미적용)에버디벨에 방문해 주셔서 감사합니다.</p> </div> <div class='box2'> <p>(pre-wrap 적용)에버디벨에 방문해 주셔서 감사합니다.</p> </div> <div class='box3'> <p>(pre-line 적용)에버디벨에 방문해 주셔서 감사합니다.</p> </div> <div class='box4'> <p>(pre 적용)에버디벨에 방문해 주셔서 감사합니다.</p> </div> <div class='box5'> <p>(nowrap 적용)에버디벨에 방문해 주셔서 감사합니다.</p> </div> <div class='box6'> <p>(normal 적용)에버디벨에 방문해 주셔서 감사합니다.</p> </div> </body> </html>
위 코드의 결과
이렇게 white-space에 대해서 알아봤습니다. ^^