반응형 웹(Responsible Web)이란 디바이스(전자기기)별로 각각 레이아웃(grid)가 달라지는 웹이다.
쉽게 설명하자면 화면의 크기 마다 레이아웃이 달라진다.
반응형 웹에서는 필수인 미디어쿼리는, 화면크기 마다 각각 다르게 CSS를 적용하는 것이다.
화면 사이즈를 인식해 서로 다른 CSS를 적용시켜준다. 보통은 스마트폰, 태블릿 , PC 화면 3개 정도를 구분해준다.
CSS파일이나 <style>
에 기술한다.
해상도 320px 이상 또는 768px 미만 -> 스마트폰
해상도 768px 이상 또는 1024px 미만 -> 태블릿
해상도 1024px 초과 -> PC
link 방식 ex ) <link rel="stylesheet" media="all and (min-width:320px)"
- 미디어쿼리 작성법
@media only | not 미디어유형 and | , (조건문) {적용할 css}
다중 조건 ex ) @media (min-width:320px) and (max-width:768px) {적용할css}
- 미디어 유형 (생략시 default 값은 all)
all 모든장치
screen 컴퓨터 화면 또는 스마트 기기 화면
tv 영상과 음성이 함께 출력되는 장치
projection 프로젝터 장치
handler 손에 들고다니는 소형장치
speech 음성 출력 장치
aural 음성 합성 장치 (화면을 소리로 출력해주는 장치)
embossed 점자 인쇄 장치 (화면을 읽어 종이에 점자를 찍어내는 장치)
tty 디스플레이 기능이 제한된 장치
braille 점자 표시 장치
width 웹페이지 가로 너비
height 웹페이지 세로 높이
device-width 기기의 가로 너비
device-height 기기의 세로 높이
orientation 기기의 화면방향 (portrait:세로,landscape:가로)
aspect-ratio 화면 비율
device-aspect-ratio 단말기기의 화면 비율
color 기기의 비트 수
color-index 기기의 색상 수
monochrome 기기가 흑백일 때 픽셀당 비트 수
resoulution 기기의 해상력
scan TV의 스캔 방식
grid 기기의 그리드/비트맵
* 미디어쿼리 ex )
<style>
@media all and (min-width:320px) {
#wrap div{
width:100%;
}
}
@media all and (min-width:768px) {
#wrap div{
width:50%;
}
#wrap div:nth-child(5){width:100%;}
}
@media all and (min-width:1024px) {
#wrap div{
width:20%;
}
#wrap div:nth-child(5){width:20%;}
}
</style>
Viewport란 모바일 브라우저에서 web conetent 를 출력하는 영역으로써, 일반 PC의 브라우저에서는 존재하지 않는 개념이다. Viewport는 웹페이지의 너비와 높이, 확대/축소 설정할 수 있게 해주며, 이를 통해 web content가 최적의 상태로 화면에 표시될 수 있게 도와준다. 쉽게말해 화면을 모바일에 맞게 표시해주는 설정이라고 보면 된다.
<head>
태그 내부의 <meta>
태그로 기술한다.
* 사용법
<meta name="viewport" conetent="width-device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
>> 1이 기본값, 1보다 낮으면 축소 , 1보다 크면 확대된 값으로 설정됨
>> 0.25 기본값
>> 5.0 기본값
>> yes 기본값, yes | no