- Published on
Responsive Web 구현
미디어 쿼리 (Media Queries)
-
단말에게너는어떤종류의미디어니? 화면크기는얼마나되니? 라고 질문하는 것
-
아래와 같은 형태의 미디어 쿼리를 작성하여 해당하는 경우 실행문을 적용한다.
@media [only 또는 not] [미디어 유형] [and 또는,콤마] (조건문) {실행문}
-
미디어 유형 : all, screen, tv, projection 등등...
-
조건문 : width, height, device-width, device-height, color, resolution 등등...
/* 뷰포트가 320px 이상일때 */
@media all and (min-width: 320px) {
body {
background: #e65d5d;
}
}
/* 뷰포트가 768px 이상일때 */
@media all and (min-width: 768px) {
body {
background: #2dcc70;
}
}
-
스마트 기기는 기본으로 설정되어 있는 뷰포트 영역으로 인해 미디어 쿼리가 정상적으로 작동하지 않는 문제가 발생할 수 있다.
이러한 문제를 방지하기 위해 뷰포트 메타 태그를 이용해서 화면의 크기나 배율을 조절 해야 한다.
<!-- 뷰포트 메타 태그 -->
<meta
name="viewport"
content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes"
/>
Fluid Grid
-
웹 페이지가 화면의 크기에 관계없이 자유롭게 늘어나거나 줄어들 수 있도록 픽셀(px)대신 퍼센트(%)를 사용 하는것
-
em단위는 부모에 적용된 폰트 크기를 기준으로 계산한다.
ex) 부모가 96px인데, 2em으로 지정하면 96 * 2 px가 됨
-
rem단위는 최상위, 즉 웹 문서의 시작인 html 태그를 기준으로 하기 때문에 상속 문제가 발생하지 않음
-
vw단위는 (viewport width) 뷰포트의 너비를 100을 기준으로 하여 크기를 결정하는 단위.
ex)5vw 뷰포트 넓이의 5%가 된다.
Flexible Box
-
박스의 배치, 순서 또한 유동적으로 변경할 수 있다.
-
부모 박스에 display:flex; 속성을 적용하면, 자식 박스들이 Flexible Box로 작동한다.
-
플렉스 아이템을 제어하기 위한 속성
- flex-direction : 플렉스 아이템의 배치 방향 설정
- flex-wrap: 여러 줄로 배치
- flex-flow: direction, wrap 동시 설정
- justify-content: 주축 방향으로 다양한 아이템 배치 방법
- align-items: 교차축 방향으로 다양한 아이템 배치 방법
- order : 배치 순서
- flex: 아이템 크기 늘이고 줄이기
반응형 웹의 장점과 단점
-
장점은 한벌만으로 여러기기에 대응할 수 있어 유지보수가 간편하다.
-
단점은 모바일등에서 필요하지 않은 리소스까지 로드하므로 성능문제를 야기할 수 있다.
-
또한 복잡한 Grid 형태의 데이터 표현이 빈번한 경우 적합하지 않다.