#1. 반응형 웹
1. 반응형 웹의 개념
반응형 웹 이란?
- 디바이스의 디스플레이 종류에 따라 반응하여 그에 맞도록 적절하게 UI를 배치하는 웹을 말한다.
- 다양한 디바이스에 대응하여 최소한의 변화로 내용 탐색을 쉽게 하여 사이트를 최적의 형태로 제공한다.
- 과거에는 웹사이트를 주로 데스크탑을 통해 사용해서 문제가 없었지만, 기술의 발전으로 생긴 태블릿, 스마트폰 등 크기가 각각 다른 디스플레이에 맞추기 위해 반응형 웹이라는 것이 생겨났다.
↓
2. 반응형 웹 구현 방법
1) 미디어 쿼리
- 미디어 쿼리를 활용하여 하나의 웹페이지가 해상도 구간에 따라 레이아웃으로 구성되도록 한 웹 페이지이다.
- 미디어 쿼리는 CSS2부터 시작되어 CSS3에서 본격적으로 쓰이기 시작한 웹 기법이다.
- 디바이스의 폭이나 높이 등의 정보를 가지고 스타일을 개별적으로 줄 수 있다.
@media 미디어타입 and (너비 및 높이) {
/* 너비 및 높이는 min- 이나 max- 로 최대,최소를 정한다 */
선택자 {
속성: 속성값;
}
}
※ 최소 해상도 중심
@media screen and (min-width: 576px) { css }
/* Small devices (스마트폰, 576px 이상) */
@media screen and (min-width: 768px) { css }
/* Medium devices (테블릿, 768px 이상) */
@media screen and (min-width: 992px) { css }
/* Large devices (데스크탑, 992px 이상) */
@media screen and (min-width: 1200px) { css }
/* X-Large devices (큰 데스크탑, 1200px 이상) */
@media screen and (min-width: 1400px) { css }
/* XX-Large devices (더 큰 데스크탑, 1400px 이상) */
※ 최대 해상도 중심
@media screen and (max-width: 576px) { css }
/* X-Small devices (스마트폰, 576px 이하) */
@media screen and (max-width: 768px) { css }
/* Small devices (스마트폰, 768px 이하) */
@media screen and (max-width: 992px) { css }
/* Medium devices (테블릿, 992px 이하) */
@media screen and (max-width: 1200px) { css }
/* Large devices (데스크탑, 1200px 이하) */
@media screen and (max-width: 1400px) { css }
/* X-Large devices (큰 데스크탑, 1400px 이하) */
※ 미디어 타입 종류
- all : 모든 유형
- print : 인쇄장치
- screen : 컴퓨터 스크린, 스마트폰
- tty : 디스플레이 기능 제한장치
- embossed : 점자 프린터
2) 미디어 쿼리 사용
@media screen and (max-width: 620px) {
.menu, .main, .right {
width: 100%;
}
}
/* 해상도가 620px 이하가 되면 해당 클래스의 넓이를 100%로 변환한다. */
↓
3) 유동형 그리드
- 유동형 그리드(Fluid Grids)는 고정된 다위가 아니라 상황에 맞게 변할 수 있는 em이나 %등의 단위를 사용하는 방법이다.
- 웹브라우저 창 크기를 늘리거나 줄이면 페이지를 구성하는 요소의 크기도 그에 맞게 변한다.
- 미디어 쿼리와 같이 이용하면 특정 범위의 스크린에 따른 고정형 그리드/반응형 그리드의 구현도 가능하다.
4) 모바일 뷰 포트 설정
- 스마트폰은 태블릿이나 데스크톱과 달리 독자적인 뷰 포트 처리 방식을 갖고 있다.
- 태블릿의 뷰 포트는 웹 문서의 너비와 무관하게 화면에 보이는 영역이 뷰 포트가 되고, 데스크탑은 웹 브라우저의 창 크기를 조절함으로써 사용자가 뷰 포트의 크기를 제어할 수 있다.
- 스마트폰의 경우 단말의 스크린 사이즈와는 무관하게 웹 문서의 너비와 높이가 뷰 포트가 되고, 스마트폰 스크린에 웹 문서를 모두 출력하기 위해 스크린 사이즈가 큰 경우 자동으로 줌 아웃 처리한다.
- 이 문제를 해결하기 위해 HTML의 <head> 영역에 <meta> 태그의 코드를 지정한다.
- <meta name="viewport" content="width=device-width, inital-scale=1.0">
- 위 코드를 통해 뷰 포트를 문서가 아닌 스크린 영역으로 재설정한다.
3. 반응형 웹 디자인의 기본 원칙
1) 반응형(Responsive)과 적응형(Adaptive)
- 반응형 : 하나의 템플릿으로 모바일, 태블릿, 테스크탑 등 모든 기기에 대응할 수 있는 웹
- 적응형 : 모바일용, 태블릿용, 테스크탑용 등 디바이스 별로 독립적인 템플릿을 만들고 각각의 디바이스에 맞는 페이지를 별도로 제작
2) 흐름(The Flow)
- 화면 크기가 작아짐에 따라 컨텐츠가 더 많은 수직 공간을 차지하기 시작하고 아래의 모든 내용이 밑으로 내려가게된다.
3) 상대 단위(Relative units)
- 픽셀(px)은 유연하지 않고 모든 곳에서 작동하기에 무리가 있다.
- %나 em과 같은 상대적 단위는 유연하고 모든 곳에서 작동하는 장치가 된다. (유동형 그리드)
4) 브레이크포인트(Breakpoints)
- 브레이크포인트를 사용하면 레이아웃을 미리 정의 된 지점에서 변경할 수 있다.
- 대부분의 CSS 속성은 하나의 중단 점에서 다른 중단 점으로 변경할 수 있다.
5) 최대 값(max)과 최소 값(min)
- 컨텐츠가 스마트폰 화면의 전체 너비에 맞춰 차지하고 있다가 그보다 큰 화면의 전체 너비까지 펼쳐지는 것은 좋지 않은 경우가 있다.
- 이때 최대값을 지정해 놓으면 화면이 넓어져도 컨텐츠의 크기가 넓어지지 않는다. (단위는 px)
6) 모바일(Mobile) 또는 데스크탑(Desktop) 우선
- 기술적으로 작은 화면에서 큰 화면(모바일 우선) 또는 반대(데스트탑 우선)로 시작해도 큰 차이는 없다.
- 그러나 모바일 우선으로 시작하는 경우 추가 제한 사항이 추가되고, 의사 결정을 내리는데 도움이 된다.
'국비수업 > HTML & CSS' 카테고리의 다른 글
[HTML & CSS] 클론코딩 연습2 (0) | 2022.03.16 |
---|---|
[HTML & CSS] 클론코딩 연습1 (0) | 2022.03.16 |
[CSS] 요소에 효과를 주는 속성 (0) | 2022.03.10 |
[CSS] Background 속성 (0) | 2022.03.08 |
[CSS] Position 속성 (0) | 2022.03.07 |