뷰포트에 따라 css가 달라지는 반응형 웹을 만들고 싶다면 미디어 쿼리를 사용하면 된다.
@media 미디어 타입 (조건(너비 및 높이)) {
(CSS 입력하는 부분)
}
예)
@media screen (max-width: 400px) {
body {
color: red;
}
}
위 코드와 같은 경우, 뷰포트 width가 400px이하인 경우에만 css가 적용된다.
적용 가능한 미디어 타입 종류
all : 모든 미디어 타입
print : 프린터
screen : 컴퓨터 화면
speech : 스크린 리더
@media (orientation: landscape) {
body {
color: rebeccapurple;
}
}
@media screen and (min-width: 400px) and (orientation: landscape) {
body {
color: blue;
}
}
여기서 HTML 본문 텍스트가 파란색이 되는 유일한 경우는 뷰포트의 너비가 최소 400픽셀 이상이고 장치가 가로 모드인 경우에만 해당합니다. 두 조건을 모두 만족해야지 쿼리 안의 CSS 스타일이 적용 됩니다.
@media screen and (min-width: 600px), screen and (orientation: landscape) {
body {
color: blue;
}
}
이런 식으로 뷰포트의 넓이가 600px 이상이거나, 장치가 가로 방향인 경우 텍스트는 파란색이 됩니다. 이 중 하나라도 조건을 만족한다면 쿼리 안의 CSS 스타일이 적용 됩니다.
@media not all and (orientation: landscape) {
body {
color: blue;
}
}
이 예시는 방향이 세로인 경우에만 텍스트가 파란색으로 적용이 되게 됩니다.