1. CSS의 역할
- CSS (Cascading Style Sheets) 는 웹 페이지의 '시각적 표현'을 제어하기 위한 언어이다.
- 참고 URI
- Cascading Style Sheets, level 1(CSS1)
- http://www.w3.org/TR/REC-CSS1
- Cascading Style Sheets, level 2(CSS2)
- http://www.w3.org/TR/REC-CSS2
- Cascading Style Sheets, level 2 revision 1 (CSS2.1)
- http://www.w3.org/TR/REC-CSS21
2. CSS의 서식
@ CSS 기본 규칙
선택자 {속성 : 값 ;}
- 규칙집합(rule set) : 선택자로부터 시작하는 일련의 내용
- 선언블록(declaration block) : '{'로 시작해 '}'로 끝나는 부분
- 선언(declaration) : 선언 블록 안의 내용
- 선택자(selector)는 스타일을 적용하는 대상을 말하며 주로 'h1' 이나 'p'등 HTML의 요소명이 그에 해당한다. class명이나 id명을 조합하여서 선택자의 적용대상 범위를 정하거나, 특정 속성이 있는 요소에 적용하는 등 좀더 구체적 설정도 가능하다.
- 속성(property)는 그 선택자에 어떤 스타일을 부여할지를 지정한다. 다양한 속성의 종류는 CSS 사양서에 정의 되어 있으며 속성별로 지정할 수 있는 값(value)이 정해져 있다.
# CSS 예시
body { color : black ; font-size : large; };
h1,h2,h3 { color : green;}
abbr,acronym { border : 1px dashed gray; }
# 대문자와 소문자 구별
- HTML 4.01 등과 같이 CSS는 기본적으로 알파벳의 대문자와 소문자를 구별하지 않는다.- id명이나 class명, 글꼴명, URI 등 몇 가지 값은 구별한다.
- XHTML 이나 XML 은 요소명이나 속성명도 대문자와 소문자를 구별하고 일부 속성값에서도 구별하는 경우가 있다. 주로 소문자로 적는 것이 좋다.
# 공백문자 취급
- CSS는 유니코드의 스페이스(20), Tab 키(9), 라인피드(A) , 캐리지리턴(D), 폼피드(C)의 다섯 가지를 공백문자(whitespace)로 인식한다.- 복수의 공백문자가 연속한 때에도 하나의 공백으로 취급한다.
# 값을 표시할 때 키워드와 텍스트 구별
- CSS에서 값으로 텍스트(string)를 지정하는 경우 인용부호(" 또는 ')로 묶도록 규칙으로 지정되었다.- 예컨대 다음 같은 값은 키워드에 해당하며 인용부호로 묶는 것은 올바르지 않다.
body {
width : "auto" ;
border : "none" ;
font-family : "serif" ;
background : "red" ;
}
-> 다음같이 인용부호로 묶지 않고 기술해야 한다.
body {
width : auto;
border : none ;
font-family : serif ;
background : red ;
}
- 택스트를 값으로 지정할 수 있는 것은 text-align 속성, content 속성, quote 속성 뿐이다.
@ 주석 삽입
- CSS에 주석을 삽입하려면 텍스트 '/*' 와 '*/'로 둘러싼다.
/* 페이지 전체에 적용 */
body {
color : black;
background-color : white;
}
@ 길이 단위
- CSS로 지정할 수 있는 길이 단위 종류는 많지만 크게 '절대단위'와 '상대단위'로 나눈다.# 절대 단위
- pt(포인트, 1/72인치)
- pc(파이카, 12pt)
- in(인치, 2.54cm)
- cm(센티미터)
- mm(밀리미터)
# 상대 단위
- px(픽셀)
- ex(소문자 'x'의 높이를 1로 하는 단위)
- em(font-size 속성의 값을 1로 하는 단위)
- 'px'는 같은 사이즈의 화면이라도 해상도 설정에 따라 크기가 달라지기 때문에 상대단위로 되어 있지만, 대부분의 브라우저에서 절대단위처럼 해석되기 때문에 절대단위로 생각하고 지정하는 편이 좋다.
@ 색상값
- CSS에서는 색상값을 'RGB값' 또는 '키워드'로 지정한다. 'RGB값' 지정방법은 네가지이다.
# RGB값(16진수, 6자리)
body { color : #ff0000}
# RGB값(16진수, 3자리)
body { color : #f00}
# RGB 값(10진수)
body { color : rgb(255,0,0); }
# RGB 값(퍼센테이지값)
body { color : rgb(100%,0,0); }
# 키워드
- 표준 기본 색상 16색
키워드 | RGB값 |
---|---|
black | #000000 |
silver | #c0c0c0 |
gray | #808080 |
white | #ffffff |
maroon | #800000 |
red | #ff0000 |
purple | #800080 |
fuchsia | #ff00ff |
green | #008000 |
lime | #00ff00 |
olive | #808000 |
yellow | #ffff00 |
navy | #000080 |
blue | #0000ff |
teal | #008080 |
aqua | #00ffff |
- 시스템 컬러 28 종
키워드 | 색정보를 얻어오는 대상 |
---|---|
ActiveBorder | 활성화된 창의 테두리선 |
ActiveCaption | 활성화된 창의 캡션(타이틀) |
AppWorkspace | MDI(Multiple Document Interface)의 배경 |
Background | 데스크톱의 배경 |
ButtonFace | 버튼의 표면 |
ButtonHighlight | 버튼의 하이라이트 |
ButtonShadow | 버튼의 그림자 |
ButtonText | 버튼의 텍스트 |
CaptionText | 캡션(타이틀)의 텍스트 |
GrayText | 선택 불가능한 텍스트 |
Highlight | 선택된 항목 |
HighlightText | 선택된 항목의 텍스트 |
InactiveBorder | 활성화되지 않은 창의 테두리선 |
InactiveCaption | 활성화되지 않은 캡션(타이틀) |
InactiveCaptionText | 활성화되지 않은 텍스트 |
InfoBackground | 툴팁의 배경 |
InfoText | 툴팁의 텍스트 |
Menu | 메뉴의 배경 |
MenuText | 메뉴의 텍스트 |
Scrollbar | 스크롤바 |
ThreeDDarkShadow | 디스플레이 입체표현의 어두운 그림자 |
ThreeDFace | 디스플레이 입체표현의 표면 |
ThreeDHighlight | 디스플레이 입체표현의 하이라이트 |
ThreeDLightShadow | 디스플레이 입체표현의 밝은 그림자 |
ThreeDShadow | 디스플레이 입체표현의 그림자 |
Window | 창의 배경 |
WindowFrame | 창의 테두리 |
WindowText | 창의 텍스트 |
@ URI
- CSS의 값에 URI를 지정할 때 'url()' 함수를 이용하여 지정한다. CSS의 기준 디렉토리는 XHTML문서의 디렉토리가 아니라 CSS 자체의 디렉토리임에 주의하자.
body { background-image : url("../image/bcg.gif"); }
- 인용부호 생략 가능(" ")
body { background-image : url(../image/bcg.gif); }
@ 퍼센테이지값(%값)
- 일부 속성에서는 '%'를 단위로 하는 퍼센테이지 값을 지정할 수 있다.(마이너스 값을 지정할 수 있는 속성도 있다.)
p { font-size : 120% }
@ 음성 스타일시트 특유의 단위
- CSS2에 새롭게 정의된 음성 스타일시트의 일부 속성에는 각도 단위, 시간 단위, 주파수 단위를 지정한다.
# 각도 단위
- deg : 도수법에 근거한 각도
- grad : 그래드법에 근거한 각도
- rad : 라디안법(고도법)에 근거한 각도
p.rightperson { azimuth : 90deg }
# 시간 단위
- 시간 단위에서는 마이너스를 지정할 수 없다.
- ms 밀리초
- s 초
h2 {pause-before : 5s; }
# 주파수 단위
- 주파수 단위에서는 마이너스를 지정할 수 없다.
- Hz : 헤르츠
- kHz : 킬로헤르트
p.male { pitch : 120 Hz }
@ 스타일 상속
- 부모 요소에 적용한 스타일이 자식 요소에 계속되는 것을 상속(inherit)이라고 한다.
p { color : red }
abbr { text-decoration : underline }
<p> .. <abbr> ... </abbr> .. </p>
- p요소의 자식인 abbr 요소에도 color 속성값이 자동으로 상속되어 abbr 요소에는 다시 text-decoration 속성값이 적용된다. body { font-size : 90%; }
p { font-size : 80% ; }
<body>
<p>... </p>
</body>
- 상속된 값이 '%'나 'em'등의 상대단위인 때는 일반적으로 부모 요소의 값에 자식 요소의 값을 더한 값이 적용된다. 위의 경우 p요소의 글꼴 크기 '80%'는 부모 요소인 body요소의 '90%'를 기점으로 다시 계산되어 실제로는 '72%'로 표시된다.- 자식 요소에 부모 요소 값을 강제적으로 상속시키려면 'inherit' 키워드를 지정한다.
table { border : 1px solid gray }
td { border : inherit }
댓글 없음:
댓글 쓰기