CSS 기본문법
CSS는 XHTML 과 긴밀히 맞추어져 있습니다. CSS는 모든 XHTML의 요소들을 하나하나 한곳한곳 혹은 그룹을 불러내어 어떻게 스타일, 표현 되도록 정해줄수가 있습니다.
#mypage { font-size:12px; }
- # 부분은 어떠한 종류의 이름을 부르는지 말해줍니다. 다른 2종류는 . 이 있구요(예: .mypage) 아예 아무것도 없는것이 있습니다. 나중에 더 자세히 보기록 하겠습니다.
- mypage부분은 이름을 말합니다. #mypage는 mypage라는 id이름을 가진것을 부른것입니다. 그렇다면 xhtml에 id=mypage라고 씌인부분을 불러낸것이죠.
- 이름을 부른후에 값을 넣습니다. 중괄호 {} 안에 속성과 값들을 들어가게 되는데, 그것들은 CSS에서 이미 정해진 속성들을 불러내어서 값을 정해주는식으로 행해집니다.
- 예제는 간단히 하나만 정해놓았는데요, font-size는 글자크기를 말합니다.
- 콜론 : 으로 이어지면서 원하고 싶은 값을 넣으면 됩니다. 12px로 정했지요.
- 각각의 속성이 끝날때마다 세미콜른으로 ; 끝맺어 줍니다.
복합적인 속성들을 사용한 예를 볼까요
.yourpage { font-size: 14px; background: red; margin: 5px; }
이것을 편하게 보기 위해서
.yourpage {
font-size: 14px;
background: red;
margin: 5px;
}
이렇게 정렬해 놓습니다.
.
.
.
.
.
.
.
이름의 종류와 선택방법
이름전의 종류들을 볼까요? 어떠한 종류이냐에 따라서 css에서 이름을 부르는것들이 달라지게 됩니다. 복잡하지 않고 간단히 3가지 종류가 있는데요. 종류는 3가지 이지만 부르는 방법은 여러가지가 있습니다.
일단 3가지는 첫째로 이미 xhtml에서 정해진 속성들. 두번째는 제작자가 이름을 붙인것중 한번만 쓰이는것, 세번째는 제작자가 이름을 붙인것중 반복적으로 쓰인느것. 이 세가지를 구별해서 css에서 부릅니다.
자 이 규칙들은 어렵지 않으니 그냥 머리속에 담으시기 바랍니다. 6가지 입니다. :)
- 첫번째는 이미 XHTML에서 정해진 태그들의 이름들입니다. 예를 들어 html, body, blockquote, img, div, table 등인데요, 이미 정해져 있는 이 태그들을 CSS에서 부를때엔 앞에 아무것도 붙이지 않고 부릅니다. #나 . 같은거 없고 말이죠.
html { font-size: 11px; background: red; } div { padding: 0; margin: 0; } img { padding: 5px; }
등등 보통 이값들은 css 처음부분에 나열하게 됩니다.
다음에 설명될 2번과 3번은 1번에서의 xhtml에서 정해진 값들에 제작자가 특별히 이름을 붙였을때의 종류들입니다. 예를들어 <div id=”header”> 는 xhtml 에서 이미 div로 정해진 이름인데 제작자가 특별히 header로 이름을 붙인것이지요. <a img src=”그림주소” class=”mypicture” />또한 mypicture라고 이름을 정한것이구요.
- 제작자가 html의 속성에다가 이름을 붙일때에 그 용도가 단독적으로 쓰이는 것이라면 id로 지정하게 되어 있습니다. 예를 들어 레이아웃중 커다란 타이틀 그림이 들어가는 부분은 페이지중 한번밖에 안쓰이기 때문에 <div id=”titleimage”> 처럼 id로 이름을 부릅니다. 그래서 웹사이트 xhtml소스를 보면 id= 로 되어있는것은 한번만 씌여져 있습니다.
이렇게 id로 특별히 이름이 정해진 값은 # 로 css에서 부릅니다.
#header {
width: 300px;
height: 200px;
}
#websitetitle {
font-size: 16px;
} - 하지만 제작자가 반복해서 쓰일만한 것에는 class 라고 부른후에 이름을 정해줍니다. 예로 일기의 날짜부분은 그다음날 일기에 또 들어가고 계속 반복적으로 들어갈 것이니 class로 부르는 것이죠. <div class=”diary_date”>
이 class로 xhtml에서 정해진 것을 css에서 지명할때에는 . 마침표를 씁니다.
.diary_date {
font-size: 10px;
margin: 5px;
}
.smallfont {
font-size: 8px;
margin: 5px;
} - 다음은이름이 정해져 있는속성 안에 이름이 정해져 있지 않은 속성(html에서 이미 정해진 이름)을 부르는경우 입니다. ㅡㅡ; 2,3번 안에 들어있는 1번이되겠네요. 예를 드는게 가장 빠르겠습니다. ^^
<div id=”header”><p>문단</p></div>header 라는 div 안에 p 라는 html 에서 이미 정한 태그를 불러야 하는 경우입니다.
이 경우에 p를 그냥 불러서p {
font-size: 10px;
}
이라고 정해주면 웹사이트의 모든 p에 이것이 적용됩니다. 그러니 정해진 이름을 부르고 그것을 불러주면 p에 이름을 정해주지 않더래도 지정할수가 있는것이죠.#header p {
font-size: 10px;
}다른 예로, list를 쓸때에 이런 경우가 많은데
<div id="content"> <ul> <li>리스트 입니다</li> </ul> </div>
에서 ‘리스트 입니다’ 부분을 css에서 부르려면
#content ul li {
color: blue;
}이렇게 선택할수 있겠습니다. 한칸씩 띄워주고 부르면 되겠네요.
주의 하실점은 이름이 정해져 지지 않은 값을 부를때에 쓰는 방법이라는것입니다. #header #content { font-size: 12px;}은 안되는것이죠. - 여러가지를 한꺼번에 부를수 있습니다. 어차피 같은 값을 적용시킬꺼라면 쉼표, comma 를 사용해서 나누어주면 됩니다.
#content ul li, #header, .diary_date { font-size: 12px; }
이렇게 정리된것은 다음과 똑같은 효과를 냅니다. 밑에것들이 더 길뿐입니다.
#content ul li { font-size: 12px; }
#header { font-size: 12px; }
.diary_date { font-size: 12px; } - 마지막으로 어떤 특정 속성을 가지고 있는 태그를 불러내어 선택할수 있습니다. 2,3 번과 비슷하지만 이름대신 속성으로 찾는것이지요.
앞에 태그를 부르고 그다음 대괄호 안에 속성을 불러냅니다.div[align] { font-style: italic; }
align 이라는 속성을 가지고 있는 div 에는 이탈릭으로 모든폰트 스타일이 바뀌겠습니다.
이 선택하는 방법은 넷스케이프 6 에서는 가능하지만 ie 에서는 가능하지 않습니다.
혹시나 이해가 잘 안되었다면 연습하면서 이해해봅시다.

CSS 에서 동그라미 친 부분을 불러봅시다.
#header {
font-size:12px;
}
2는 그냥 li 로 불러도 되지만 id=”content” 안에
속해있으니 4번규칙에 의해서 부르는게 좋습니다.
#content ul li {
list-style-type: none;
}
3또한 4번규칙을 써도 되겠죠. 하지만 그냥 1번규칙
을 써서 불러보겠습니다.
p {
color: #ff0000;
}
4번은 class로 불려졌으니 마침표를 써서 불러야겠죠.
3번규칙입니다.
.date {
font-size: 10px;
}
5번은 정하지 않고 놔두게 되면 위의 3번에서
정한값이 그대로 적용됩니다. 그게 싫다면
4번규칙을 써서 부릅니다.
#footer p {
font-size: 13px;
}
정리를 해보겠습니다. css는 각각의 모든 xhtml의 요소들을 부를수가 있는데 그 이름의 종류에따라서 부르는 기호가 틀려지게 됩니다. 이름을 정하지 않은 보통의 xhtml요소들은 앞에 아무것도 붙이지 않고, id 로 정해진 이름을 부를때엔 # 샾, 그리고 class로 정해진것은 . 마침표를 앞에 붙여서 부릅니다. 그리고 아시다시피 XHTML의 규정으로, id는 단독적으로 쓰이는것에 이름을 붙일때에 쓰고, class는 반복적으로 쓰일때에 씁니다. html의 속성을 부를때에 어떠한 정해진 이름안에 속해있다면 이름 띄고 속성(#header ul li) 이렇게 부를수 있다는것도 잊지 마시구요. 또한 쉼표로 나누어 여러가지를 한꺼번에 불러서 동일한 값을 줄수 있으며 넷스케이프에서는 속성을 찾아 그곳에 다른 속성을 더해줄수 있다는것도 나누었습니다.

* 이름을 정할때에는 자신이 알아볼 정도만의 이름뿐만이 아닌 평범하게 모두가 알아볼수 있을만한 이름을 정하여 선택해 쓰는것이 좋습니다.
** 브라우저의 호환성을 위해 혹은 특히 class는 여러곳에서 쓰일수 있기때문에 혼돈되지 않도록 앞에 XHTML 속성을 부른후에 제작자가 정한 이름을 붙이는 경우도 있습니다. 예를들어
<div id=”header”> 를 css에서 부를때에
div#header { width: 300px; } 이렇게 말이죠. 호환성과 문제들은 이곳에서 다루면서 또한 wsg 이나 CSS Design Korea 에서 더 자세히 다룰것입니다.
어렵지 않죠? CSS2는 함수나 계산등이 들어가지 않는 단순한 언어이기때문에 그렇게 어렵지는 않을것입니다.
CSS에서 XHTML에 있는 요소들을 부르는법을 알았으니 이제 부르고 나서 명령을 해주어야겠죠. 그것들을 살펴봅시다.


apple440
June 20th, 2005 at 1:42 am
음 아주 좋은 강좌입니다,
잘보고 갑니다 :)
하나, 추가하자면 .의 class와 #의 id는 본질적으로는 비슷하나
#id는 .class에겐 없는 점이 있다면 객체를 호출 할 수 있다는 점입니다.
window.document.id 이런식으로 객체의 id가 되는 셈이죠^^* :lol:
[Reply]
Bopy
June 20th, 2005 at 3:02 am
좋은 강좌네요:razz:
그런데 마지막 표에서 ‘없슴’ 은 ‘없음’ 이 맞답니다:wink:
[Reply]
일모리
June 22nd, 2005 at 8:56 am
apple// 네 감사합니다. ^^; 그러고 보니 id가 할수 없는 class 의 유용성도 생각이 납니다. 정리해서 올려야겠네요 :)
Bopy// 아하 그렇나요 한글이 딸리니 이런 지적들 너무 감사합니다. ^^
[Reply]
November 18, 2008 9:04 pm
너무 너무 유용한 정보였습니다.
저한테 정말 꼭 필요한 내용이었습니다.
어둠속에 헤매고 있었는데 광명을 찾았네요.
일모리님 홧팅~!!
kirheis
June 23rd, 2005 at 11:46 pm
아… 삽질하면서 어렴풋이 이럴거다라고 짐작했던 걸 확실히 알게 되네요. :razz:
[Reply]
applevirus
July 5th, 2005 at 2:15 pm
: D 멋진 강의 고마워요.
[Reply]
luckystrike
July 7th, 2005 at 9:02 am
css 강좌 찾아서 한참 헤멨는데.. 여기 다 있네요.. 고마워요:grin:
[Reply]
luckystrike
July 7th, 2005 at 9:04 am
허~ 신기하네요.. 여기 브라질인데.. 브라질 국기가 뜨네:lol: 전 세계국기가 다 있나요^^
[Reply]
overflow
July 7th, 2005 at 10:44 am
좋은 강좌 너무 잘보고갑니다
저에겐 너무 유용한 내용이네요 정말 감사 ㅡㅜ
[Reply]
일모리
July 8th, 2005 at 8:39 am
kirheis, applevirus ^^ 도움이 되었다니 제가 더 감사합니다.
luckystrike// 네 200개가 넘어가니 왠만한건 있는거 같네요 ^^
overflow// 도움되신만큼 많이 쓰시고 나누시고 행복하시기 바랍니다 :wink:
[Reply]
유세옥
July 10th, 2005 at 4:39 pm
초보인 제가 봐도 이해하기 쉽게 잘 써주셔서 감사합니다.
[Reply]
chungdna
July 12th, 2005 at 9:44 pm
어디다가 질문을 해야할지 모르겠네요..
저도 한번 wordpress 써보려고 하는데
예를들어 /wp/about 페이지 같은경우 rewrite rule 이 존재해야할 것 같은데 어떻게 설정해야할지 막막하네요.
/^[a-z] 등에 대한 룰말이에요.
[Reply]
일모리
July 13th, 2005 at 1:16 am
mod_rewrite 을 서버에서 지원만 해준다면 옵션->퍼머링크-> 에서 수정해주시면 순식간에 바뀌게 됩니다.
[Reply]
imgsoul
August 9th, 2005 at 4:03 pm
:grin: 잘보았네요.
웹디자인을 하면서도 이런 개념이 없이 했었는데 이제 좀 정리가 되네요.
제 블로그에 퍼갑니다. 괜찮죠?
[Reply]
takahashi
August 20th, 2005 at 4:15 pm
:roll:좋은강좌네요.
지금까지 레이아웃하면 테이블만이었는데..
정리됐습니다.
[Reply]
andy
November 18th, 2005 at 1:34 pm
:lol: 회사 동료가 추천해서 들어와 보았는데, 정말 좋은 정보가 많네요.
앞으로 자주 들러서…더 많이 배우려고 합니다. 좋은 정보 정말 고맙습니다.
[Reply]
일모리
November 18th, 2005 at 2:41 pm
도움이 되셨다니 제가 기분이 좋네요. 힘든 하루가 되고 있는데 말입니다 ^^;
[Reply]
daybreaker
November 26th, 2005 at 11:59 pm
아, 근데 갑자기 드는 생각인데요.
CSS 표준에서 50% + 3px 와 같은 간단한 수식을 지원한다면 좋겠다는 생각이 듭니다. 가끔 있으면 좋겠다 싶은 때가 있더군요. (IE는 일부 지원하는 것 같기도 하던데…)
[Reply]
wookay
February 2nd, 2006 at 3:02 am
감사합니다.
[Reply]
나그네
February 14th, 2006 at 8:29 am
좋은 강좌 감사합니다.:lol:
[Reply]
실버
April 3rd, 2006 at 9:37 pm
:razz:
너무 좋은 정보 감사합니다.
trac 한글 버전 설치후
네비게이션 바에 글씨가 작아서
찾아와는데요, 덕분에 아주 보기 좋게됐습니다.
[Reply]
담
May 24th, 2006 at 11:47 am
:oops: 이렇게 쉽게 풀어주시는데도..
디자이너는 헤메다갑니다..ㅠㅜ
훌륭한강좌에욧!!
[Reply]
다림
June 7th, 2006 at 5:59 pm
이런이런~ 너무 쉽고 머리에 쏙쏙 들어오는 강좌를 이제야 발견하다니.. ^^
체계없이 뒤죽박죽 이었던 css에 대해 조금 틀이 잡히는 것 같습니다.
너무너무 감사합니다!!
[Reply]
일모리
June 8th, 2006 at 7:32 am
^^ 화이팅
[Reply]
꿈트리
July 13th, 2006 at 3:53 pm
css의 간단한 정리 감사합니다.
앞으로 많은 도움이 되겠네요.ㅋ
[Reply]
Haruka
September 19th, 2006 at 4:04 pm
CSS 강좌를 여러군데 찾아 봤는데 모두 이미 기초지식을 알고 있다는 가정하에서 글을 써놓아 곤란했는데요
여긴 정말 기초부터 설명해주시네요.
잘 보고 공부하고 있습니다.
[Reply]
ssal
November 2nd, 2006 at 4:07 pm
좋은정보 감사합니다:mrgreen:
[Reply]
스타킹
November 5th, 2006 at 1:26 pm
저같은 초보가 이해하기 쉽게 정리가 잘 되있어서 아주 좋네요.
감사하게 잘보고 갑니다. :mrgreen:
[Reply]
soul.
November 15th, 2006 at 10:02 am
와웅 오늘 아침부터 짬이나서 다시 기초부터 보고있습니다.
시간날때마다 조금씩. 초보인 저에게 많은 도움받고 있습니다.너무 감사합니다 :smile:
[Reply]
LinDol
January 23rd, 2007 at 10:56 pm
쉽게 설명해 주셔서 감사 합니다. ^^:mrgreen:
[Reply]
근데여
March 13th, 2007 at 12:12 am
cascading style sheets
[Reply]
eslife
April 22nd, 2007 at 12:05 am
정리가 너무 잘 되어 있네요. css 초보라 개념잡기 힘든 부분이었는데 도움이 많이 되었습니다. 감사합니다 ~.
[Reply]
doodoo
May 16th, 2007 at 5:01 pm
근데요 본문중에…한가지가 자꾸 걸려서
“이름전의 종류들을 볼까요? 어떠한 종류이냐에 따라서 CSS에서 이름을 부르는것들이 틀려지게 됩니다.” 이부분 중에 틀려지게 를 달라지게로 하면 안될까요? 국어를 잘하는건 아니지만 바로 눈에 보여서 ..죄송..
[Reply]
일모리
May 16th, 2007 at 9:41 pm
네 지적 감사합니다. ^^
[Reply]
posi
June 11th, 2007 at 4:39 pm
좋은 강좌 감사합니다. 블로깅을 시작한 지 얼마 되지도 않았고.. 근래 까지 그저 무턱대고 다른 분의 스킨을 다운 받아서 아주 조금씩의 수정만을 해왔었는데.. 이제 좀 더 구체적으로 화면설계도 하고 원하는 스킨을 제작해 봐야겠습니다.
감사해요 :-)
[Reply]
pfe21
October 18th, 2007 at 12:43 am
잘 봤습니다. Wordpress라는 사이트도 깔끔하구요~ 일모리님의 명쾌한 CSS설명에 감사합니다~
[Reply]
sunnyday
July 15th, 2008 at 10:33 pm
정말 좋은 강좌네요-
수박 겉핥기식으로 알고있던 CSS를 기초부터 다시 새롭게 배우는 좋은 기회가 될것 같아요
틈틈이 시간날때마다 들러서 공부하도록 해야겠습니다 ^^
정말 감사합니다.
[Reply]
Harimao
August 2nd, 2008 at 11:51 pm
오늘 일몰닷컴을 첨 왔는데요
좋은 정보가 많고, 도움되는 강좌들도 많은것 같네요
자주 들러서 이용해야 할거같습니다.. ㅎㅎ
좋은 강좌 잘 보고 갑니다.
[Reply]
maya
September 4th, 2008 at 11:40 am
요즘 웹표준 공부한다고 머리가 지끈~지끈해용.
많은 도움이 되는 홈페이지네요~
멋져버림~ (^- ^)/
[Reply]
알바트로스
October 14th, 2008 at 1:54 pm
이런 깔끔한 정리를 보았나…
너무 멋지게 정리를 해놓으셨습니다. 팍팍 들어오구요..
적절하게 예를 드는 타이밍도 멋지시네요.. 강의 경험이
많으신가봐요… 덕분에 명쾌하게 정리하고 갑니다..
한가지 ^^ 저는 브라우저 확대기능 사용하는데 배경이 그대로
있어서 저는 별로 신경쓰지 않지만 옥에 티라고 하겠습니다.
신경안쓰시면 안고치셔도 무방할듯 합니다… ^^ 감사합니다.
[Reply]
이은미
October 30th, 2008 at 2:12 pm
도움되는 정보가 많네요. 덕분에 공부 잘하고 갑니다.
자주 들러야 겠어요
[Reply]
배미진
November 3rd, 2008 at 4:11 pm
좋은강좌 잘보고갑니다…
# . 등..어디어떻게 사용되야하는지 알겠네요~
감샤.
[Reply]
천치
December 15th, 2008 at 10:36 am
정말 정리를 잘 해주셨네요^^b
적절한 예시덕에 확 이해하고 갑니다~
좋은 하루 보내시고, 늘 행복한 한 주 되세요^^
[Reply]
씨즌
January 21st, 2009 at 7:15 pm
강좌 쩌네요 ㅎㅎㅎ
잘보고갑니당~!
열공합시당^^
[Reply]
demun
April 6th, 2009 at 11:38 pm
몇번이고 다시 읽습니다.이제막 기초를 배우니 …..
죄송하지만 하나 여쭤보겠습니다.
블로그에 광고스크립트나 다음 웹인사이드같은 스크립트를 넣으면 ie에서는 괜찬은데 파이어폭스에서는 깨지는데 왜 그런가요?
어떤 블로그들은 파이어폭스로 봐도 잘 되는데….
그게 웹표준의 css와 관계가 있는건가요?
[Reply]
demun
April 6th, 2009 at 11:45 pm
여러번 반복해서보니 이제야 좀 이해가 되는군요.ㅎㅎㅎ
[Reply]
mininix
June 12th, 2009 at 2:28 pm
너무 쉽게 잘쓰셨네요 감사합니다.
[Reply]