자 이제 CSS를 입혀보자.
일단 전역설정이다. 이 작업은 브라우저마다의 차이를 극소화하고, 사용할 tag의 기본적인 속성을 부여하는 작업이다. 갖가지 태그의 padding과 margin을 0으로 지정! tag마다 기본적으로 padding과 margin값이 틀리다. 쉬운 디자인 작업을 위한 설정이기도 하다. 가로줄(hr tag)은 디자인에서 (대개) 불필요하므로 보이지 않도록 처리한다. hr tag를 생략할수도 있겠지만, 디자인이 배제된 페이지에서의 head, body, foot의 구분을 위한 용도로 유용하므로 사용을 권한다!
html,body,img,form,div,span,h1,h2,h3,h4,hr,ul,li,table,tr,th,td {
padding: 0;
margin: 0;
}
hr {
display: none;
}
위의 작업 외에도 기본적인 링크(a tag) 설정, 링크걸린 이미지를 위한 border 설정 등 작업내용에 맞는 기본설정을 한다!
자, 이제 페이지에 디자인을 입히는 작업 시작! 첫번째, 전체적인 레이아웃을 보자. 검은 테두리가 모든 정보를 덮고 있고, 그 안에 배경색이 있고, 중앙으로 정렬이 되어 있고, 위로부터 10px 떨어져 있다.
여기서 전체를 담당하는 container와 body tag의 선언을 하자. 브라우저 틀에 해당하는 body tag, 다음과 같이 선언해보자.
body {
margin-top: 10px; /* 상단의 마진을 10px로 설정 */
background-color: #fff; /* 배경색을 흰색으로 설정(=#ffffff) */
}
검은 테두리와 그에 해당하는 부분은 container에 선언한다.
#container {
margin: auto; /* 중앙정렬! 상하 마진에는 관여되지 않는다. */
width: 700px;
border: 1px solid #000; /* 테두리를 1px 검은색으로 설정 */
background-color: #f9f9fe;
}
이제 전체적인 틀을 만들었다. 다음으로는 실제 내용 하나하나에 디자인을 입혀보겠다. 로고, 상, 하, 좌에 각각 20px의 마진, font의 크기는 h1의 그것으로 결정하기로 했다고 하자. 또 로고의 폰트를 두껍게, 2차 로고(div 레이아웃 첫번째 페이지)는 표시하지 않기로 하자. (이미지에서 로고가 두껍게 나오지 않는건 내 컴의 문제 -_-+)
#logo {
padding: 20px;
border-bottom: 1px solid #000; /* 로고 아래의 검은줄 */
}
#logo h1 { /* 폰트에 대한 내용이므로 해당 tag에 직접 써준다 */
font-weight: bold;
}
#logo span { /* 2차 로고를 숨긴다 */
display: none; /* visible 속성은 보이지 않지만, 레이아웃에 해당영역을 차지 한다. */
}
좌측 메뉴, 다음으로 나올 뉴스 내용이 오른쪽에, 좌측 메뉴가 왼쪽에 배치되어 있다. top과 left의 border는 있으니, right, bottom에만 border를 적용시켜주면 되겠다. 배경색이 다르다. text가 중앙정렬이며, 상하도 중앙정렬이다 – 이럴 땐, 높이를 지정하지 않은 padding 옵션이 적당하다.
#menu { /* 메뉴 전체의 틀을 지정 */
width: 150px;
float: left; /* 왼쪽으로 정렬시킨다. 뿐만 아니라, 다음의 나올 컨텐츠의 위치를 이것도 동일선상(?)으로 위치시키는 기능도 있다. 자세한 내용은 http://www.w3.org/TR/CSS21/visuren.html#floats를 보도록 하자. */
text-align: center; /* 좌우 중앙정렬 */
background-color: #e0e0ef;
}
#menu li {
list-style-type: none; /* 앞 딴의 미려하지 않은 동그랑땡을 제거! */
padding: 8px; /* 중앙정렬을 위해. */
border-right: 1px solid #000;
border-bottom: 1px solid #000;
}
자, 이제 내용을 메뉴의 오른쪽으로 위치시킬 차례이다. 전체의 가로 size에서 메뉴의 가로 size를 제외한만큼의 영역을 차지한다. 행의 높이를 20px로 한다.
#contents { /* 내용 전체의 틀 */
float: right; /* 오른쪽으로 띄운다. */
width: 550px;
}
.news { /* 여러개의 뉴스가 한 페이지에서 보일 개연성을 부여한다(?) */
padding: 10px;
}
.news-body p { /* 행의 높이는 전역설정을 하지 않는다!! */
line-height: 20px;
}
행의 높이는 레이아웃에 뜻하지 않은 악영향을 끼치는 경우가 많다. 필요한 경우에만 사용한다. 여러군데에서 같은 행의 높이가 사용된다면, 따로 class를 부여하여 사용하면 좋다.
자, 이제 copyright를 만들고 전체적인 레이아웃을 마무리한다! float 상태를 취소하고 아랫쪽으로 배치! 좌우 중앙, 상하 중앙(padding 사용!), 상단에 1px의 border!
#copyright {
clear: both; /* float 상태를 취소 (both = left + right) */
text-align: center;
border-top: 1px solid #000;
padding: 20px;
}
페이지가 완성되었다. 결과물을 눈으로 확인하자! 예제 – divcss2.html
다음 공략에서는 좀더 실제상황가 가깝게 이미지, 링크 등이 들어간 디자인을 입혀보겠다!
덧) 모자란 실력으로 공략같은걸 씁니다. ^^ 많이 부족한 부분이 있고, 간혹 틀린 부분이 있을 수도 있습니다. 이런 부분에 대해선 미리 죄송하다는 말씀 드립니다! 많은 정보 얻고있는 forums.mozilla.or.kr에게는 언제나 감사하다는 말씀.. 덧붙입니다!