웹페이지는 pc, mobile, 태블릿 등 다양한 기기로 본다. 이 기기들의 화면크기는 모두 다르기 때문에 반응형웹이 필요하다.
자동적으로 사이즈에 맞게 배치나 크기 등을 변경해주는 것. 보기 편하게!
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<head>
에 들어가 있는 매타태그이다. 여기서 initial-scale=1.0
는 확대 정도를 의미.@media
로 타입과 규칙을 지정해주면, 지정한 타입이 되었을 때 새로운 규칙을 실행한다. 특정 타입일때만 지정한 규칙을 덮어씌워주는 것이라고 생각!@media 미디어타입 and (크기 범위, 속성 등){ 적용할 CSS }
형식으로 작성한다.
@media 미디어타입 and (가로 크기 범위) and (세로 크기 범위){ 적용할 CSS }
이렇게 and를 이용해 여러 조건을 지정할 수도 있다.
all
: 모든 매체에 사용print
: 인쇄 시 프틴터 기기에 사용/*프린트를 할 때 continer의 배경 색상을 변경하라는 의미*/
@media print {
.container {
background-color: blue;
}
}
/*기본 브라우저의 배경컬러는 흰색, 프린트 할 때는 검정색으로 지정*/
@media screen {
body { background-color: black; color: white; }
}
@media print {
body { background-color: white; color: black; }
}
screen
: pc나 mobile같이 스크린이 있는 매체에 사용min
: 최소 뷰포트 넓이를 설정/*최소 넓이가 700px일 경우. 즉 넓이가 700px이상일 경우에 적용한다. 700px 이하에는 기본 css를 적용하는 것.*/
@media screen and (min-width: 700px) {
.container {background-color: blue;}
}
max
: 최대 뷰포트 넓이를 설정/*최대 넓이가 700px일 경우. 즉 넓이가 700px이하일 경우에 적용한다. 700px 이상에는 기본 css를 적용하는 것.*/
@media screen and (max-width: 700px) {
. box1{background-color: darkgoldenrod;}
}
width
/*이런식으로 and를 이용해 200px보다 크고 500px보다 작을 때에만 적용할 수도 있다.*/
@media only screen and (min-width: 200px) and (max-width: 500px) {
body {background-color: beige;}
}
height
orientation
: 매체 화면의 방향에 따른 적용 (landscape(가로), portrait(세로)
)@media screen and (orientation: landscape) {
body {background-color: beige;}
}
min-width
를 사용하고 (작은 화면에서 큰 화면 순으로 미디어쿼리 작성)max-width
를 사용한다.(큰 화면에서 작은 화면 순으로 미디어쿼리 작성):root {--원하는이름 : 값;
}
/* 기본 값을 정해주고 */
:root {
--color-main: navy;
--height-header-lg: 80px;
}
/* 이런식으로 사용한다. */
.container {
background-color: var(--color-main);
}
:root
에 담긴 값만 수정해주면 되기 때문.💬