text-align
텍스트를 포함한, 적용 가능한 요소들의 가로 또는 세로의 정렬에 대한 설명과 함께 텍스트의 들여쓰기 및 행처리에 관한 내용을 살펴보도록 합니다.
[ 텍스트의 가로 정렬 ]
text-align: left (default value);
이 값은 하위 요소로 상속이 되며, 모든 요소에 적용할 수 있는 값입니다. 예를 들어, 블록 레벨 요소인 박스에 설정을 해두면, 해당 박스 안쪽에 있는 모든 요소에 적용이 됩니다. 디폴트 값은 브라우저와 글자의 표기 방향에 따라 다르지만, 일반적으로 left인 경우가 많습니다.
* left, right, center, justify
테이블의 tr, td태그에 사용되는 HTML속성값인 align과 비슷한 방법으로 박스등에 사용할 수 있습니다.
[ 텍스트의 세로 정렬 ]
vertical-align: baseline (default value);
값을 지정한 요소가 표시되는 하나의 행에서 세로 방향의 위치 정렬에 관한 속성입니다.
단, 인라인 요소에만 적용되며, 테이블의 tr, th, td등의 요소에는 적용됩니다. 값은 상속되지 않습니다.
tr, HTML | tr CSS |
align="center" | text-align: center; |
valign="top" | vertical-align: top; |
위에서와 같이, text-align속성은 모든 요소에 적용할 수 있으며, vertical-align속성은 tr, td등의 요소에는 적용이 됩니다. 따라서, HTML의 align, valign을 대치하여 같은 효과를 얻을 수 있습니다.
주) tr, td등에 사용되는 vertical-align의 경우, 속성값 top, middle, bottom만이 valign값에 대응하여 적용됩니다. 브라우저간의 차이는 있으나, 기타 속성값은 대부분 무효화되며 기본값으로 처리됩니다.
아래와 같이 블록레벨 요소인 박스에 vertical-align속성을 부여하는 경우, tr, td등에 적용했던 것과 같은 결과를 얻을 수 없습니다. vertical-align은 tr, td에 적용할 수는 있으나, 인라인 요소에만 사용할 수 있기 때문입니다. 즉, 해당 요소가 표시되는 하나의 행에서의 세로 방향의 위치 정렬을 설정하는 것이 vertical-align의 정의입니다.
박스 안에서의 세로 정렬은, 박스의 세로 크기를 지정하기 보다는, 다음과 같이 적절한 패딩값을 이용합니다.
- vertical-align:
not used;
- vertical-align:
baseline;
- vertical-align:
bottom;
- vertical-align:
text-bottom;
- vertical-align:
not used;
- vertical-align:
top;
- vertical-align:
text-top;
- vertical-align:
not used;
- vertical-align:
0px;
- vertical-align:
-1px;
- vertical-align:
middle;
- vertical-align:
super
- vertical-align:
sub
[ 문단 들여쓰기 ]
text-indent: 0 (default value);
하위 레벨 요소에 값이 상속되며, 블록 레벨 요소에 지정하여, 해당 요소에 포함된 문잔의 첫번 째 라인을 들여쓰기 해줍니다. 따라서, 음수값을 지정할 수도 있으며, 문단 들여쓰기라는 특성상 인라인 레벨 요소에는 설정되지 않습니다.
* 실수값+단위
<div style="width: 500px; line-height: 15px; text-indent: 1em; text-align:justify;">
Wie has been mixing school and tour golf since she played three LPGA Tour events at age 12. She turned professional in October 2005 and earned close to $20 million this year from endorsements, earnings and appearance money overseas.
And while she still hasn't won on the LPGA Tour -- she had three close calls in the majors -- Wie said her nerves were never more jangled than
waiting to see if she had been accepted. She got the news Friday.
[ 공백 및 행 처리 ]
white-space: normal (default value);
HTML의 <Pre>태그와 비슷한 역할을 수행할 수 있으며, nowrap이라는 추가적인 속성을 사용할 수 있습니다. 모든 요소에 적용할 수 있으며, 하위 요소에 설정값이 상속됩니다.
* normal, nowrap, pre
<div style="width: 500px; margin: 0; padding: 10px; white-space: normal;">
일 반적으로, 박스안에 스크립트 코드와 같은 내용을 입력하면, HTML을 기본 마크업에 따라, 연속된 공백이나 탭, 줄바꾸기(소스상 줄바꾸기)가 하나의 공백으로 변환되어 표시됩니다. 또한, 박스의 너비에 따라 자동으로 줄바꾸기가 됩니다.
<div style="width: 500px; white-space: nowrap; overflow: hidden;">
디폴트 상태와 같이 연속된 공백이나 탭, 줄바꾸기(소스상 줄바꾸기)를 하나의 공백으로 변환하여 표시합니다. 그러나, 박스의 너비를 무시하고 줄바꾸기를 하지 않습니다. (박스 외곽으로 넘치는 부분은 overflow속성을 이용해, 숨김설정으로 해두었습니다.)
<div style="width: 500px; margin: 0; padding: 10px; white-space: pre; overflow: hidden;">
HTML 소스에 입력한 데로 공백이나 탭, 줄바꾸기를 그대로 표시합니다. 이 경우도, 박스의 너비를 무시하고 줄바꾸기를 하지 않습니다. (박스 외곽으로 넘치는 부분은 overflow속성을 이용해, 숨김설정으로 해두었습니다.)
<div style="width: 500px; margin: 0; padding: 10px; white-space: pre; overflow: hidden;">
function resetRadio(){
...
}
</div>
위와 같이, 박스 태그와 내용의 첫번째 줄바꿈의 경우 IE7은 표기하지 않지만, Firefox2는 표기합니다.
따라서, 다음과 같이 박스 태그와 박스 내용 사이의 소스에 줄바꿈을 없도록 해주어야 합니다.
<div style="width: 500px; margin: 0; padding: 10px; white-space: pre; overflow: hidden;">function resetRadio(){
...
}
</div>
[ 참고 ]
HTML :: pre
다음은, HTML의 pre태그를 사용한 예입니다.
<div style="width: 500px; margin: 0; padding: 10px;">
<pre style="margin: 0; padding: 0; width: 480px; overflow: hidden;">
위와 같이 pre태그 역시, 글꼴등의 기본스타일을 따로 지정해 사용해야 합니다. 따라서, 상위레벨에서 지정된 스타일을 적용받으면서, 공백 및 행처리를 하는데에는 white-space를 이용하는 것이 유리합니다.
pre태그는 white-space와 달리, 박스 태그와 내용의 첫번째 줄바꿈에 대하여, IE7, Firefox2 모두 표기하지 않습니다.