CSS2 들어가기 |
CSS 란? |
CSS는 HTML 문서의 양식을 지정합니다.
HTML 택의 고유 양식과 속성을 대체하고 새로운 양식을 제공하여 기존의 택 하나 또는 모든 택에 각기의 모양이나 색상, 위치 등을 지정할 수 있게 하고 이들을 효율적으로 다룰 수 있는 수단을 제공합니다. 이 새로운 양식으로 고정되고 제한되어 있는 HTML 고유 속성을 넘는, 새로운 양식을 표현할 수 있는 능력을 제공하여 다양한 양식의 문서를 정확한 위치에 배치할 수 있게 합니다.
페이지를 구성을 위해 <TABLE> 택을 사용하고 글꼴과 색상을 지정하기 ㎸漫?<FONT> 택을 사용하여 모든 페이지에 일일이 지정하는 기존의 작성을 <P>, <B> 택 같은 전혀 성격이 다른 택으로 <table>과 <font> 택 양식을 만들 수 있습니다. 그리고 이들 지정을 택하나, 여러 택, 여러 페이지에 일괄적으로 지정할 수 있어 작고 관리하기 편한 페이지를 만들수 있습니다. 뿐만아니라 기존의 웹 페이지 개념을 넘는 DHTML, XML의 기초가 됩니다.
ie3 이상, nn4 이상, Opera3.5 등에서 지원합니다. 이들 브라우저가 CSS1, CSS2를 다 지원하지는 않고 지원하는 것도 브라우저에 따라서 서로 다르게 보이는 것이 있고 여러개 같이 사용시 작동하지 않는 버그도 있습니다.
Style 지정하기 |
Style을 사용하는 방법은 몇가지가 있습니다. <LINK>택으로 외부화일로, <STYLE> 택으로 문서전체에 지정, 각 택에 직접 지정 그리고 @import url()로 4가지로 사용할 수 있습니다.
- <STYLE>
- <LINK>
- <택>
- @import url()
<STYLE>, <LINK> 택에는 style 지정과 관계가 있는 "type", "media" 속성이 있습니다.
type는 style 로 사용할 언어를 지정하는 속성입니다. CSS, JavaScript, XSL 등 여러가지의 언어로 style을 사용할 수 있고 앞으로 더 늘어날 수도 있기 때문에 사용할 언어를 지정해야 CSS 구문을 다룰 수 있습니다. type을 지정하지 않으면 기본으로 "text/css"가 지정됩니다.
JavaScript 언어로 사용시는 "text/javascript"로 지정하는데 이 type은 W3C의 권고사항에 들어있지 않고 NN4에서만 작동합니다.
"media" 속성은 CSS를 사용할 매체를 지정합니다. 지정하지 않으면 기본으로 'screen'이 지정 됩니다. 즉, 컴퓨터 모니터입니다. CSS2로는 많은 매체에 문서를 표현할 수 있는데 종류는 screen, tty, tv, projection, handheld, print, braille, aural 그리고 다 지정하는 all 이 있습니다. 쉼표(,)로 여러개도 지정할 수 있습니다. media="screen, aural" 으로 모니터와 오디오 매체에 style을 사용하게 합니다. 각 매체들은 사용하는 software, hardware가 지원을 해야 사용할 수 있습니다. nn4에서 media="screen" 외의 지정시 듣지 않습니다. media="screen, aural", media="all" 모두 작동하지 않습니다.
<STYLE> |
문서 전체에 지정하는 방법은 <HEAD> 택 안에서 <STYLE> 택으로 지정합니다.
<HTML> <HEAD> <STYLE TYPE="text/css" MEDIA="screen"> <-- H3 { font-size: 12pt; font-family: 굴림; color: green; } --> </STYLE> </HEAD> <BODY> <H3> 12pt 크기의 초록색의 굴림글자입니다. </H3> <H3> 나도 12pt 크기의 초록색의 굴림글자입니다. </H3> </BODY> </HTML>
으로 H3 택에게 font-size, font-family, color 3가지를 지정하였습니다. 이렇게 사용할 style을 <style> 택으로 지정하여 <HEAD> 택안에 넣어줍니다. 지정하는 형식은
선택자 { 요소: 값 }
입니다. 선택자는 사용할 택이고 요소는 각 style이고 값은 요소가 사용할 값입니다. 요소와 값은 colon(:)으로 구분합니다. 여기서는 H3가 선택자이고 "font-size", "font-family", "color" 가 요소이고 "12pt", "굴림", "green" 이 값입니다. 두개 이상의 "요소: 값" 을 지정할 때는 각 값에 semicolon(;)을 덧붙여서 각 "요소: 값" 을 분리합니다.
<STYLE> 택의 시작과 끝에 html 주석문(<!-- -->)을 넣어주는 것은 <STYLE> 택을 지원하지 않는 브라우저는 style 내용을 페이지에 출력하는데 이것을 막기 위해서 넣어줍니다.
<STYLE TYPE="text/css"> <!-- --> <STYLE>
<택 STYLE="..."> |
<STYLE> 택으로 지정하지 않고 각 택에도 style 속성으로 직접 넣어줄 수 있습니다.
<HTML> <HEAD> </HEAD> <BODY> <H3 STYLE="font-size: 12pt; font-family: 굴림; color: green;" > 12pt 크기의 초록색의 굴림글자입니다. </H3> </BODY> </HTML>
로 각 택안에서 STYLE="요소: 값" 으로 직접 지정합니다. <STYLE> 택안에서 지정하는 것은 페이지에 있는 모든 <H3> 택에게 style을 지정하지만 이것은 지정한 택에게만 style을 지정하는 것입니다. 그래서 다음에 <H3> 택이 더 있더라도 그 <H3> 택은 style이 듣지 않습니다.
<LINK> |
외부 화일을 연결하여 사용하는 <LINK> 택으로 사용하는 방법입니다.
<HTML> <HEAD> <LINK rel="stylesheet" type="text/css" href="my.css"> </HEAD> <BODY> <H3> 12pt 크기의 초록색의 굴림글자입니다. </H3> </BODY> </HTML>
"rel" 속성은 현재의 문서와 "href" 속성에 지정한 화일의 관계를 지정합니다. rel="stylesheet" 는 연결한 화일을 페이지에서 style sheet로 사용한다고 지정하는 것입니다. 그러므로 style 을 <LINK> 택으로 사용시 같이 지정해 주어야 합니다.
style로 사용할 외부 화일은 <LINK> 택의 href 속성에 사용할 style을 지정해 놓은 화일의 이름을 지정합니다. 그러면 그 화일에 있는 모든 style을 페이지에 사용할 수 있습니다. my.css 화일안에 있는 내용은 style 구문만 넣어주면 됩니다. <style> 택 같은 어떤 택도 필요없습니다. 위의 예에서는
H3 { font-size: 12pt; font-family: 굴림; color: green; }
로 <STYLE> 택안에 지정한 style과 같은 구문을 넣어주면 됩니다. style 화일을 만드는 방법은 메모장 같은 문서 편집기로 사용할 style을 적고 확장자를 css로 지정하면 됩니다. <LINK> 택에서는 택의 끝을 알리는 </LINK> 택은 지정하지 않습니다.
<LINK> 택의 'href'에 지정한 외부 CSS 화일에서 background-image(이미지.jpg) 같은 것으로 다른 화일을 지정할 때는 CSS 화일의 경로에서 상대적인 경로로 지정됩니다. 하지만 이 경우 nn4에서 화일의 경로는 *.css 화일에서의 경로가 아니고 HTML 화일에서의 경로로 지정하는 버그가 있습니다.
.backImg { background-image: url(../images/back.jpg) }
로 외부화일에서 지정하면 nn4에서는 html 화일의 경로에서 상위 디렉토리 images 에서 'back.jpg' 이미지를 찾습니다. 그래서 <LINK> 택으로 지정한 외부화일에서 다른 화일을 지정하면 *.css 외부화일과 html 화일의 경로가 다르면 nn4에서 안나옵니다.
이 문제를 해결하는 방법은 아래 3가지 중에서 하나로 해결할 수 있습니다.
- 절대 경로로 지정한다.
- html 화일과 *.css 화일을 같은 경로에 둔다.
- <STYLE> 택이나 택에 직접 지정한다.
<STYLE TYPE="text/css"> .backImg { background-image: url(../images/back.jpg) } </STYLE>
@import url() |
style을 지정하는 방법중에서 위의 <LINK> 택과 비슷하게 외부 화일로 style을 지정하는 @import 가 있습니다. 형식은 @(골뱅이)를 import 지정자 앞에 붙여서 <STYLE> 택안에서 첫번째로 지정하면 됩니다. 형식은 <LINK> 택의 href 속성과 같은 작동을 하는 url(외부화일)로 지정합니다.
- @import "my.css"
- @import url("my.css")
두 개 중에서 하나를 사용하면 되고 @import "my.css"는 자동으로 url()이 붙습니다.
<STYLE type="text/css"> <!-- @import url("my.css") --> </STYLE>
@import url("css화일")는 꼭 <STYLE> 택의 맨 처음에 지정해야 하고 두 개 이상을 지정하면 두번째의 것이 첫번째의 것보다 우선합니다. <LINK>, <STYLE> 택의 'media' 속성처럼 매체를 지정할 수도 있습니다.
<STYLE type="text/css"> <!-- @import url("my.css") screen @import url("my2.css") print, aural --> </STYLE>
로 사용할 매체를 한개나 여러개 지정합니다. 아직 nn4에서는 지원하지 않습니다. <LINK> 택과 같은 작동을 하기 때문에 <LINK> 택을 지정하면 ie4, nn4에서 같이 사용할 수 있습니다.
외부 화일을 연결하는 <LINK> 택이나 @import 화일 안에서 이미지같은 화일을 지정하는 요소를 지정할 때, 이미지의 경로는 CSS 화일 주소에서의 경로입니다. HTML 화일에서의 경로가 아닙니다.
페이지에 Style 지정과 적용 위치 |
<head> <style type="text/css"> style 구문.. </style> </head> <body> : :
로 페이지 전체에 style을 지정하기 위해서 <style> 택을 <head> 택 안에서 지정합니다. <head> 택의 내용은 페이지의 본문인 <body> 보다 먼저 수행됩니다. 그래서 페이지 전체의 문서를 다루기 위해서 <style> 택을 <head> 택 안에 지정합니다. 만약 <head>택 안이 아니고 <body> 택의 중간에 <style> 택을 지정하면 지정한 후의 본문의 내용은 ie4에서는 듣지만 nn4에서는 듣지 않습니다.
<head> </head> <body> <H1> H1 입니다. </H1> <style type="text/css"> H1, H2 { color: red;} </style> <H2> H2 입니다. </H2>
ie4는 <H1>, <H2> 택이 둘다 빨간색이고 nn4는 <H2>만 빨간색으로 나옵니다. 보통 페이지 전체에 style을 적용하기 위하여 <style> 택을 <head> 택안에 지정합니다. 이런 동작은 <link> 택도 마찬가지입니다.
일반적이고 효율적인 STYLE 지정은 외부 화일로 여러 페이지에 지정하는 style 양식은 <LINK>택을 사용하고 한 페이지 전체에 지정은 <STYLE> 택으로 <HEAD> 택 안에 지정합니다. 그리고 특정 양식이 필요할 때에는 style 속성으로 택에 직접 지정합니다.
Style 지정과 주석 달기 |
주석은 많은 경우에 유용합니다. style을 지정할 때에도 마찬가지입니다. 많은 style을 지정한 것이 있는데, 주석을 달아서 설명을 해놓으면 시간이 지난후에 읽어보면 이해가 잘되기 때문입니다.
주석을 지정하는 구문은 C, JavaScript와 비슷합니다.
H3 { font-size:12pt; color:aqua; } /* 이것은 h3 택에 글자 크기를 12pt로 빨간색으로 지정하는 것이다. */
로 backslash(/)와 별표문자 (*)로 지정합니다. /* 주석.. */ 의 형식입니다. 주석안에 다른 주석은 지정할 수 없습니다. 즉, /* 주석1.. /* 주석2.. */ */ 는 안됩니다.
'강의실 > css' 카테고리의 다른 글
property와 value 사용하기 (0) | 2007.07.25 |
---|---|
css2 선택자 (0) | 2007.07.25 |
선택지 사용하기 ID (0) | 2007.07.25 |
선택자 사용하기-class (0) | 2007.07.25 |
선택자 사용하기-집합 (0) | 2007.07.25 |