요즘에는 컴퓨터뿐만 아니라 핸드폰,태블릿pc 등 여러가지 화면의 크기를 가진 전자기기들로 홈페이지를 보게된다. 이 때 홈페이지가 크기에 맞게 변형 되어야 사용자가 보기에 무리가 없다. 크기에 맞게 변형할 수 있게 만드는 것이 media query이다.
media query 를 적용하기 전에 <head>
요소 안에
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
를 넣어 주어야 media query가 작동된다.
🚨 media query 적용 순서는 작은 화면 사이즈를 기준을 먼저 적용시키며 점점 사이즈를 늘리면서 반응하는 웹을 만들어야 한다.
<html>
<head>
<link rel="stylesheet" href="style.css" media="all">
<link rel="stylesheet" href="name.css" media="(min-width: 20em)">
</head>
</html>
장점 : 여러 stylesheet 들을 분할하여 직접 media를 지정하였기 때문에 사이트 성능을 미세하게 조정할 수 있다.
단점 : 핸드폰과 같이 작은 화면을 가진 기기들은 그 크기에 맞는 stylesheet 만 다운받아 적용시키기 때문에 그 이외의 stylesheet 는 적용이 되지 않을 수도 있고 데스크탑 브라우저 사용자는 언제든지 조건을 변경할 수 있어 웹 브라우저는 stylesheet를 모두 받을 수 있게 된다. 불필요한 요청을 2번하기 때문에 성능 저하의 원인이 된다.
<style>
p {
background-color: blue;
color: white;
}
</style>
<style media="all and (max-width: 500px)">
p {
background-color: yellow;
color: blue;
}
</style>
<p>안녕하세요. 개발하세요.</p>
@media only screen and (min-device-width: 320px) and (max-device-width: 480px) {
.box {
background-color: black;
}
}
@media : media query가 시작됨을 선언한다.
screen : media type 으로 all , print , screen , speech 값이 들어갈 수 있다.
min-width : media feature 미디어의 기능을 담당하고 있으며 적용시키려는 사이즈 (min-width , max-width) 를 통하여 반응형 사이즈를 조절할 수 있다.
and : 연산자이며 and , or , not 이 들어갈 수 있다.
참고자료
media query 사용하기 mdn