7. 텍스트(Text)
CSS3에서 HTML 요소의 내용(content)에 해당하는 부분에 오는 텍스트에 적용할 수 있는 다양한 속성들에 대해서 표준화가 진행중입니다.
현재 CSS3에 대한 최신 버전은 “http://www.w3.org/TR/css3-text/”에서
확인할 수 있으며 2012년 8월 14일날 개정되었으며 여기에는 텍스트에 대한 간단한 대소문자 변형(Tranforming)부터
시작해서 긴 텍스트에 대한 줄 바꿈, 공백은 어떻게 처리할 수 있는지 명시하고 있습니다. 또한 기본적인 정렬이나 텍스트에 밑줄을 긋거나 그림자 효과 같은 재미난 속성들도 이용할 수 있습니다.
가장 기본적인 대소문자 변형부터 알아봅니다.
7.1 대소문자로 변형(Transforming)하기
text-transform 속성을 이용하면 HTML5의 특정 요소(Element)의 내용(content) 중 텍스트에 대해서 그 안에 포함된 단어의 첫 글자 혹은 전체 텍스트에 대해서 대, 소문자로 변형할 수 있으며 그 형식은 다음과 같습니다.
selector { text-transform : 변형값 }
기존 텍스트가 변형되는 형태는 다음과 같은 변형값들을 이용하면 됩니다.
변형값 |
의미 |
none |
아무런 변화 없음 |
capitalize |
해당 문장 내 포함된 단어의 첫 문자를 대문자로 변형 |
uppercase |
해당 문장의 모든 문자를 대문자로 변형 |
lowercase |
해당 문장의 모든 문자를 소문자로 변형 |
이외에도 “full-width”, “full-size-kana” 값이 변형값으로 올 수 있지만 각각 Latin 언어나 일본어와 관련된 부분이므로 이 책의 범위를 벗어나는 부분이므로 설명을 생략합니다.
간단한 예제를 하나 해볼까요? 메모장을 열어서 다음과 같이 코드를 작성합니다.
<!DOCTYPE
HTML>
<html>
<head>
<title>text-transform 예제</title>
<style>
p#none{ font-family: "Century
Gothic"; text-transform: none }
p#capitalize{ font-family:
"Century Gothic"; text-transform:
capitalize}
p#uppercase{ font-family:
"Century Gothic"; text-transform:
uppercase }
p#lowercase{ font-family:
"Century Gothic"; text-transform:
lowercase}
</style>
</head>
<body>
<p id="none">time and
tide wait for no man.</p>
<p id="capitalize">time
and tide wait for no man.</p>
<p id="uppercase">time
and tide wait for no man.</p>
<p id="lowercase">time
and tide wait for no man.</p>
</body>
</html>
“text-transformEx.html”로 저장합니다. Firefox를 이용하여 보면 표에서
설명한 대로 변형값이 적용되어 다음과 같이 나타납니다.
7.2 white-space 속성을 이용한 공백처리하기
white-space
속성은 요소(element)안의 공백 처리를 어떻게
할 것인지를 설정해주는 속성으로 다음과 같은 형식을 이용합니다.
selector { white-space : 속성값 }
white-space 속성값으로는 “normal”, “pre”, “nowrap”, “pre-wrap”, “pre-line”, “inherit” 값이 올 수 있으며 해당 속성값이 설정되었을 때 어떻게 동작하는지를 표로 정리하면 다음과 같습니다.
속성값 |
기능 |
normal |
텍스트가 한 줄의 길이가 넘어갈 정도로 길 경우 자동적으로 다음 줄로 나머지 텍스트를 출력. 기본값 |
nowrap |
다수의 공백은 하나의 공백으로 축소되고 텍스트가 한 줄의 길이가 넘어갈 정도로 길더라도 자동적으로 줄바꿈되지 않음 |
pre |
공백은 보존되고 자동 줄바꿈이 되지 않음 |
pre-wrap |
공백은 보존되고 텍스트는 줄바꿈되며 결과는 normal과 같게 나타남 |
pre-line |
다수의 공백은 하나의 공백으로 축소되고 필요에 따라 자동 줄바꿈됨 |
메모장을 열어서
다음과 같이 코드를 작성해봅니다.
<!DOCTYPE
HTML>
<html>
<head>
<title>white-space 예제</title>
<style>
.outer{width:200px;
color:red; background-color:yellow;}
</style>
</head>
<body>
<div class="outer">
<p>알이 새근새근 숨쉰다는 것을 모르는 이들은 도무지 '나'라는 존재를 이해할 수
없을
것이다. 알을 깨고 바깥으로 나와야 생명이 탄생하는 것은 아니다.
-안도현의 '연어 이야기' 중에서
</p>
</div>
</body>
</html>
div 요소 안에 p 요소를 작성하고 p 요소의 내용(content)로 상당히 긴 문장을 위와 같이 입력합니다. 그리고 차이점을 이해하기 위해서 div 요소의 스타일을 위와 같이
너비(width) 200px로 배경색은 노랑색, 글꼴색은
빨강색으로 설정합니다. “white-spaceEx.html”로 저장한 후 브라우저를 이용하여 연결해보면
다음과 같이 다수의 공백은 하나의 공백으로 축소되고 자동적으로 줄바꿈(warp)이 되었음을 알 수 있습니다.
이제 위 코드에서 <style> … </style> 부분에 “p{white-space:nowrap;}“ 한 줄을 추가합니다. 그리고 다시 브라우저를 통해 보면 다음과 같이 다수의 공백은 하나의 공백으로 축소되고 자동적으로 줄바꿈이 되지 않은 형태로 나타납니다.
이제 방금 전
추가한 “p{white-space:nowrap;}“ 코드를 “p{white-space:pre;}“로
수정하고 저장한 후 브라우저를 통해 보면 다음과 같이 다수의 공백이 입력한대로 보존(Preserve)되고
줄바꿈이 발생하지 않습니다.
다른 속성값들도 여러분들이 바꿔가면서 그 결과를 확인해보기 바랍니다.
- 본 저작물은 본인이 2011년 상반기부터 2012년 여름 즈음까지 도서 출판을 목적으로 약 470 페이지(A4, 폰트 10)으로 작성한 원본 중 CSS3에 대한 부분을 그대로를 공개하는 것으로 본 저작물에 대한 모든 권리는 본인(원철연)에서 있음을 알립니다.
개인적인
학습 목적으로 사용을 허용하며 온오프라인의 베포나 펌, 상업적인 용도의 사용은 삼가해주시기
바랍니다. 끝으로 학교나 비영리 단체에서의 경우 본 저작물을 비상업적인 용도로 활용하고자 할 경우 연락처를
비밀댓글로 남겨주시면 연락드리겠습니다.
'제가 쓴 책 > HTML5, CSS3 and JavaScript' 카테고리의 다른 글
7.4 텍스트 정렬(Alignment)과 맞추기(Justification) (0) | 2013.08.04 |
---|---|
7.3 줄 바꿈(Line Breaking)과 단어 내 줄 바꿈(Word Boundaries) (0) | 2013.08.04 |
6.5 font-size 속성을 이용하여 글자의 크기를 설정하기 (0) | 2013.08.04 |
6.3 font-stretch 속성을 이용한 글자를 좁게 넓게 나타내기 (0) | 2013.08.04 |
6.2 font-weight 속성을 이용하여 글자 가늘고 굵게 만들기 (0) | 2013.08.04 |