HTML/CSS 기초 – 유동폭(Liquid Width) 레이아웃 – 2단(Two Columns)

유동폭 레이아웃은 컨텐트가 화면 전체를 채우게 되므로 요즘의 와이드 모니터가 많이 사용되고 있는 때에는 가독성이 떨어지므로 잘 사용하지 않습니다. 하지만 일정범위 안에서는 유동폭 레이아웃이 되도록 하고 그 범위를 넘어서면 고정폭 레이아웃이 되도록하는 방법도 사용됩니다. 이번글에서는 그동안의 내용을 되새기는 의미에서 하나씩 집어가면서 유동폭 레이아웃에 대해서 알아봅니다.

1. 유동폭 2단 레이아웃

cfile8.uf.13197E344F22112519CB03.zip

 

압축파일을 풀면 두개의 파일이 있습니다. 하나는 웹페이지에서 컨텐트를 담당하는 html 파일이고 하나는 프리젠테이션을 담당하는 CSS파일입니다. 두개의 파일을 연결해주기 위해서 6번째 줄에서 link 를 사용합니다. 참조 파일의 이름은 CSS파일의 이름과 일치해야합니다. 

웹페이지는 크게 4부분으로 나누어집니다. 웹페이지의 로고나 타이틀이 있는 header, 본문 내용이 있는 content, 본문의 보조적 역할을 하는 sidebar, 저작권이나 크레딧이 들어가는 footer가 있습니다. 이모든 요소는 <body>태그에 있어야합니다.

html 에 있는 내용은 웹브라우저에서 보면 나열된 순서에 의해서 위에서부터 차례대로 나타납니다. 이것을 원하는 곳에 배치하는 것이 CSS입니다. 그래서 CSS는 프리젠테이션을 담당하죠. CSS에는 현재 html의 요소에 대해서 어떤 명령도 내려지고 있지 않고 단지 이름만 있을 뿐입니다. html의 각 요소에는 id라는 선택자가 있고 이름이 붙여져 있습니다. 이것은 각 요소에 명령을 내리기 쉽게하려고 이름을 지어준 것입니다.  그 명단은 CSS가 갖고 있습니다. 지금 상태에서 html 파일을 클릭하여 웹브라우저에서 보면 html 의 내용만 보여집니다. 테두리도 만들고 배경색도 넣고 하면 멋지게 보이는데 이것은 CSS가 하는 일입니다.

CSS페이지에서 4가지 요소에 대해 같은 명령을 내립니다. border는 테두리를 만드는 속성이고 그 값으로 1픽셀의 두께로 실선(solid)의 짙은회색(#555)이라는 값을 입력했습니다. Ctrl+S키를 눌러 저장하고 웹브라우저에서 보면 테두리가 만들어집니다. 위에서 보면 같은 명령이 내려졌는데 이것을 하나로도 만들 수 있습니다. 지금 모든 요소가 <div>이라는 html 태그를 사용하고 있으니 CSS에서 5처럼 div 태그에 대해서 하나의 명령을 내리면 html 에서는 모든 <div>태그가 명령을 받습니다. 하지만 테두리를 만들 요소는 위 4가지 이고 다른 <div>이 추가된다면 이곳에도 테두리가 만들어질 것이기 때문에 원하지 않는 결과가 나오죠. 그래서 각자의 요소에 대해서 별도로 명령을 내리게 됩니다. 여기서는 별도의 <div>이 추가되지 않을 것이므로 오른쪽처럼 해도 됩니다.

이번에는 배경색을 추가해봅니다. 각 요소에 대해서 배경색을 옅은 회색(#ccc)을 입력합니다. 저장하고 웹브라우저에서 보면 서로 연결되어있어서 구분이 안가죠. 그래서 서로의 간격을 벌리기 위해 마진을 입력합니다. 3가지 요소에 대해서 하단 마진을 10픽셀 입력합니다. footer는 그 아래에 아무것도 없으니 입력할 필요가 없습니다. 저장을 하고 웹브라우저에서 보면 이제 구분이 가서 보기 좋게 나옵니다.

유동폭의 레이아웃은 width라는 속성의 값으로 퍼센트를 사용합니다. 모니터화면의 총 넓이를 100%로 하고 컨텐트영역과 사이드바영역이 차지하는 비율을 입력합니다. 두개의 차이인 4%는 여유공간으로 마진에 해당합니다. 이렇게 하고 저장한 다음 웹에서 보면 위아래로 영역만 정해집니다. 

컨텐트는 float:left;로 사이드바는 float:right;로 설정하고 저장해서 웹에서 보면 float라는 속성은 해당 요소를 붕 띄우기(float)때문에 아래에 있는 요소인 footer가 위로 올라오게 됩니다. 이것을 방지하기 위해서 footer 요소에 clear:both; 라는 속성과 값을 입력해줍니다. 저장을 하고 이제 웹에서 보면 원하는대로 나오게 됩니다. 웹브라우저의 상단우측에서 두번째 아이콘을 클릭하면 웹브라우저를 축소하거나 늘릴 수 있습니다. 웹브라우저 화면 우측 끝에 마우스를 대면 화살표가 양쪽으로 생기고 클릭드래그하여 화면을 줄이거나 늘리면 화면의 크기에 따라서 컨텐트영역과 사이드바 영역이 늘거나 줄어들게 됩니다. 이것이 유동폭 레이아웃입니다. 그러면 일정 부분만 줄어들고 그 범위를 넘어서면 더이상 줄어들지 않고 고정폭 레이아웃처럼 만들고 싶습니다. 이럴때 사용하는 것이 min-width라는 속성입니다.

컨텐트 영역에 min-width:500px;을 입력하고 저장한 다음 웹에서 화면을 줄이면 컨텐트 영역이 줄어들다가 500픽셀이 되면 더이상 줄어들지 않습니다. 하지만 계속 줄이다보면 전체 화면 사이즈가 500픽셀 이하로 내려가게 되는데 이때는 사이드바가 아래로 내려가게 됩니다. 이러한 단점은 있지만 이런식으로 줄여서 쓰거나 이런 해상도의 모니터는 없죠. 하지만 낮은 해상도의 모니터에서도 유동폭 레이아웃을 사용하는 방법이 있는데 좀 복잡하지만 다음과 같이 합니다.

2. 유동폭과 고정폭을 병행한 레이아웃

body 태그에 세가지 속성을 삽입합니다. 1의 min-width는 최소한의 넓이로 화면이 축소되면 4와 5의 비율에 따라서 컨텐트영역과 사이드바 영역이 줄어듭니다. 하지만 화면의 크기가 780픽셀에 오게 되면 더이상 줄어들지 않고 하단에 스크롤바가 생깁니다. 2의 max-width는 최대의 넓이로 1260픽셀이상의 해상도에서는 3과 결합하여 화면 중앙에 모든요소가 배치되고 양쪽 옆에 공간도 만들어집니다. 이 수치 이하로 내려가게 되면 4와 5의 수치에 의해 비율적으로 줄어들고 780픽셀이하로 내려가면 더이상 줄지 않습니다. 

컨텐트와 사이드바 영역의 float의 값을 서로 바꾸면 위치도 서로 바뀌게 됩니다. 780픽셀 이하로 내려가면 내용은 줄지 않고 3의 스크롤바가 나타나게 됩니다.

cfile30.uf.1832213B4F2248040458EC.zip

Related posts:

  1. HTML/CSS 기초 – 유동폭(Liquid Width) 레이아웃 – 3단(Three Column) 어떤 레이아웃이든지 3단의 레이아웃을 만들기는 까다롭습니다. 두개의 사이드바가 어느 한쪽으로 붙어있다면 기존의 2단 레이아웃을 수정해서 사이드바영역 안에 두개의 사이드바를 만들면...
  2. HTML/CSS 기초 – 고정폭(Fixed Width) 레이아웃 이전 글에서 레이아웃의 종류로 고정폭과 유동폭에 대해서 알아보았습니다. 대부분의 블로그나 웹사이트에서는 고정폭 레이아웃을 사용합니다. 요즘은 모니터화면이 와이드로 나오기 때문에 유동폭...
  3. HTML/CSS 기초 – 미니 웹사이트 만들기 2 – Div 태그를 이용한 웹페이지 레이아웃 HTML로 코딩하면서 가장 흔하고 많이 쓰이는 것이 <div>태그입니다. 영어로 Division을 의미하는데 이것은 이전 글 에서 알아봤듯이 대표적인 블럭요소중에 하나입니다. 블럭요소란...
  4. HTML/CSS 기초 – 미니 웹사이트 만들기 8 – Float 속성을 이용한 레이아웃 1 이전 글에서 본문 영역에서 컨텐트와 사이드바를 좌우로 정렬할때 float: left;와 float: right; 라는 속성과 값을 사용하여 컨텐트 영역은 좌측에 사이드바...
  5. HTML/CSS 기초 – 미니 웹사이트 만들기 9 – Float 속성을 이용한 레이아웃 2 이전 글에서 float와 clear의 기본적인 사용법을 알아보았습니다. 이번 글에서는 미니 웹사이트에서 실제로 어떻게 적용되는지 알아보겠습니다. 그리고 웹사이트 만드는데 있어서 사용되는...

댓글 남기기