HTML/CSS 기초 – 유동폭(Liquid Width) 레이아웃 – 3단(Three Column)

어떤 레이아웃이든지 3단의 레이아웃을 만들기는 까다롭습니다. 두개의 사이드바가 어느 한쪽으로 붙어있다면 기존의 2단 레이아웃을 수정해서 사이드바영역 안에 두개의 사이드바를 만들면 간단하게 해결되지만 사이드바가 양쪽으로 나누어지면 약간 복잡해지죠. 우선 하나의 사이드바 안에 두개의 사이드바를 만들어서 어느 한쪽으로만 사이드바가 두개 있는 레이아웃을 만들어보고 두개의 사이드바가 양쪽으로 나누어지는 레이아웃을 만들어봅니다.

1. 두개의 사이드바를 한쪽에 배치

cfile9.uf.1847F03B4F22511D17E5D5.zip

 

 
압축파일을 풀고 텍스트에디터에 두개의 파일을 열면 위와같이 이전 글에서 사용한 내용이 나옵니다. 이것을 시작으로 사이드바를 두개를 만들어봅니다. 요령은 html에서 1을 복사하여 아래에 붙여넣고 CSS에서는 2를 복사하여 아래에 두번 붙여넣습니다.

 
아래의 사이드바의 이름을 고쳐줍니다. 두개의 사이드바를 감싸는 id=”sidebar”라는 이름의 div 태그를 만들어줍니다. CSS에서는 복사한 사이드바 이름을 바꿔줍니다. 두개의 새로만든 사이드바의 width는 49%로 해줍니다. 부모요소인 sidebar가 36%라서 이것의 반이 될 것 같지만 자식요소는 36%를 100%로 보기 때문에 100의 반으로 나눠가지게 됩니다. 패딩을 부모인 sidebar에 1%로 하면 내부에 여백이 만들어집니다. sidebar_a와 sidebar_b의 float를 right와 left로 설정하면 좌우로 나란히 놓이게 됩니다. content와 sidebar의 float의 값을 서로 바꾸면 위치도 바뀝니다. sidebar안의 float도 서로 바꾸면 위치가 바뀝니다.

2. 두개의 사이드바를 양쪽에 배치

두가지 방법이 있는데 우선 html에서 컨텐트 영역이 사이드바 보다 상위에 있는 경우 두개의 사이드바를 양쪽에 배치하는 방법입니다. 

CSS의 컨텐트 영역을 보면 width가 40%이고 좌우 마진이 30%씩 있어서 좌우를 다 차지합니다. 또한 3의 sidebar도 width가 100%여서 이 두개의 영역을 겹치게 만들어야합니다. 사이드바에서는 포지션을 절대위치로 하고 부모요소인 body 태그에 포지션을 상대위치로 설정합니다. 두개의 사이드바의 width를 25%씩 정하고 float를 좌우로 설정합니다. 이상태에서는 아직 겹쳐지지 않으므로 컨텐트를 float:left;로 설정하면 겹쳐지게 됩니다. sidebar-a와 sidebar-b의 float 속성값을 서로 바꿔주면 위치도 바뀝니다.

보다 간편한 방법이지만 html상에서 사이드바 영역이 컨텐트보다 위에 놓이게 됩니다. 검색엔진의 대부분은 html 코드에서 먼저 나타나는 부분을 중요하게 생각합니다. 그러니 사이드바에 많은 내용이 있다면 중요한 컨텐트 영역은 뒤쳐지게 됩니다. 사이드바는 되도록이면 컨텐트 다음에 놓여야하므로 위의 방법으로 레이아웃 하는 것이 좋지만 부득이 하게 사이드바를 컨텐트보다 상위에 배치한다면 위 방법보다는 CSS에서 간편해집니다. 그렇더라도 사이드바에 내용이 많지 않은 것을 배치하는 것이 좋습니다.

html에는 사이드바가 컨텐트보다 앞서 있습니다. 이상태에서 두개의 요소를 float를 적용하면 float가 없는 컨텐트는 사이드바 영역을 차지하게 되므로 당연하게 위로 올라오게 됩니다. 컨텐트에 좌우로 30%씩 마진이 있어서 양쪽 사이드바와 서로 겹치지 않으니 쉽게 레이아웃이 만들어집니다. 여기서도 두개의 사이드바에서 float의 값을 서로 교체하면 위치도 바뀌게 됩니다.

cfile30.uf.1818BF394F2292ED24FABD.zip

Related posts:

  1. HTML/CSS 기초 – 고정폭(Fixed Width) 레이아웃 이전 글에서 레이아웃의 종류로 고정폭과 유동폭에 대해서 알아보았습니다. 대부분의 블로그나 웹사이트에서는 고정폭 레이아웃을 사용합니다. 요즘은 모니터화면이 와이드로 나오기 때문에 유동폭...
  2. HTML/CSS 기초 – 유동폭(Liquid Width) 레이아웃 – 2단(Two Columns) 유동폭 레이아웃은 컨텐트가 화면 전체를 채우게 되므로 요즘의 와이드 모니터가 많이 사용되고 있는 때에는 가독성이 떨어지므로 잘 사용하지 않습니다. 하지만...
  3. HTML/CSS 기초 – 레이아웃의 종류 블로그나 웹사이트를 만들기 위해서는 가장 먼저 생각해야하는 것이 레이아웃입니다. 가입형 블로그를 개설하거나 티스토리 같은 서비스형 블로그를 개설하더라도 가장 먼저 선택을...
  4. HTML/CSS 기초 – 미니 웹사이트 만들기 8 – Float 속성을 이용한 레이아웃 1 이전 글에서 본문 영역에서 컨텐트와 사이드바를 좌우로 정렬할때 float: left;와 float: right; 라는 속성과 값을 사용하여 컨텐트 영역은 좌측에 사이드바...
  5. HTML/CSS 기초 – 미니 웹사이트 만들기 2 – Div 태그를 이용한 웹페이지 레이아웃 HTML로 코딩하면서 가장 흔하고 많이 쓰이는 것이 <div>태그입니다. 영어로 Division을 의미하는데 이것은 이전 글 에서 알아봤듯이 대표적인 블럭요소중에 하나입니다. 블럭요소란...

댓글 남기기