반응형 웹 디자인 - 그리드 뷰
- 이전 페이지 RWD 뷰포트
- 다음 페이지 RWD 미디어 쿼리
그리드 뷰는 무엇인가요?
많은 웹 페이지는 그리드 뷰(grid-view)를 기반으로 하고 있으며, 이는 페이지가 여러 열로 나뉘는 것을 의미합니다:
웹 페이지를 설계할 때, 그리드 뷰를 사용하는 것이 매우 도움이 됩니다. 이렇게 하면 페이지에 요소를 배치하는 것이 더 쉬워집니다。
응답형 그리드 뷰는 일반적으로 12열로 구성되며, 전체 너비가 100%이며, 브라우저 창 크기를 조정할 때 축소하고 확장됩니다。
응답형 그리드 뷰를 만들기
응답형 그리드 뷰를 만들기 시작해 보겠습니다。
먼저, 모든 HTML 요소의 box-sizing
속성이 설정되었습니다: border-box
이렇게 하면 요소의 총 너비와 높이에 내비디지트(패딩)와 경계선이 포함됩니다。
CSS에 다음 코드를 추가하세요:
* { box-sizing: border-box; }
우리의 CSS Box Sizing box-sizing 속성에 대해 더 많은 내용을 읽기 위해 이 장에서 확인하세요。
이 예제는 간단한 반응형 웹 페이지를 보여주며, 두 열을 포함하고 있습니다:
실례
.menu { width: 25%; float: left; } .main { width: 75%; float: left; }
웹페이지가 두 열만 포함되어 있을 때, 위의 예제는 꽤 좋습니다.
하지만, 12열을 가진 반응형 그리드 뷰를 사용하여 웹페이지를 더 잘 제어하고 싶습니다.
먼저, 한 열의 퍼센트를 계산해야 합니다: 100% / 12열 = 8.33%.
그런 다음, 12열 중 각 열에 대해 클래스를 만듭니다, 즉 class="col-"
또한, 이 섹션이 얼마나 많은 열을 지나가야 하는지 정의하는 숫자와 함께:
CSS:
.col-1 {width: 8.33%;} .col-2 {width: 16.66%;} .col-3 {width: 25%;} .col-4 {width: 33.33%;} .col-5 {width: 41.66%;} .col-6 {width: 50%;} .col-7 {width: 58.33%;} .col-8 {width: 66.66%;} .col-9 {width: 75%;} .col-10 {width: 83.33%;} .col-11 {width: 91.66%;} .col-12 {width: 100%;}
모든 이 열은 왼쪽으로 부드럽게 흐르며, 15px의 내간격을 가지게 됩니다:
CSS:
[class*="col-"] { float: left; padding: 15px; border: 1px solid red; }
각 행은 <div>
행 내의 열 수는 항상 총 12로 되어야 합니다:
HTML:
<div class="row"> <div class="col-3">...</div> <!-- 25% --> <div class="col-9">...</div> <!-- 75% --> </div>
행 내의 모든 열은 왼쪽으로 부드럽게 흐르며, 페이지 흐름에서 빠져나가고 다른 요소를 배치합니다. 이러한 상황을 방지하기 위해 흐름을 지우는 스타일을 추가합니다:
CSS:
.row::after { content: ""; clear: both; display: table; }
그리고 스타일과 색상을 추가하여 더 아름다운 모습을 만들고 싶습니다:
실례
html { font-family: "Lucida Sans", sans-serif; } .header { background-color: #9933cc; color: #ffffff; padding: 15px; } .menu ul { list-style-type: none; margin: 0; padding: 0; } .menu li { padding: 8px; margin-bottom: 7px; background-color :#33b5e5; color: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); } .menu li:hover { background-color: #0099cc; }
브라우저 창의 너비를 매우 작게 조정할 때, 예제 웹 페이지는 최적이지 않습니다. 다음 장에서 이 문제를 해결하는 방법을 배울 것입니다.
- 이전 페이지 RWD 뷰포트
- 다음 페이지 RWD 미디어 쿼리