<CONTENT IS LIKE WATER>
์ต๊ทผ์๋ ๋ฐ์คํฌํ์ผ๋ก๋ง ์น ์ฌ์ดํธ๋ฅผ ๋ณด์ง ์๊ณ ๋ชจ๋ฐ์ผ, ํ ํ๋ฆฟPC ๋ฑ ์ฌ๋ฌ๊ฐ์ง ๋ฏธ๋์ด ๊ฐ์ฒด๋ค์ ์ฌ์ฉํ๋ค. ๋ฐ๋ผ์ ์ปจํ ์ธ ๋ฅผ ๋ด๋ ์ปจํ ์ด๋์ ๋ฐ๋ผ์ ์ ๋์ ์ผ๋ก ์น ์ฌ์ดํธ ๋ ์ด์์์ ๋ง๋ค์ด์ผ ํ๋ค.
์ ๊ทธ๋ฆผ์ ๋ฐ์ํ ๋์์ธ์ ๊ฐ์ฅ ์ ํํํ ๊ทธ๋ฆผ์ด๋ผ๊ณ ์๊ฐํ๋ค.
๋ฐ์ํ ๋์์ธ ๋ ์ด์์์ ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉํ ์ ์๋ ์์ฑ ์ค media query์ ๋ํด ์์๋ณด์.
media query๋ ํ๋ฉด์ ์ข ๋ฅ์ ํฌ๊ธฐ์ ๋ฐ๋ผ์ ๋์์ธ์ ๋ฌ๋ฆฌ ์ค ์ ์๋ CSS์ ๊ธฐ๋ฅ์ด๋ค. ๋ฏธ๋์ด์ฟผ๋ฆฌ๋ ๋ฐ์ํ ๋์์ธ์ ํต์ฌ ๊ธฐ์ ์ด๋ค.
<link>
์์์ ์ฌ์ฉํ์ฌ ํน์ฑ์ด ์กฐ๊ฑด์ ์ ํฉํ ๋ css ํ์ผ์ ๋ถ๋ฌ์จ๋ค.<link rel="stylesheet" media="screen and (max-width: 768px)" href="mystyle.css" />
@media screen and (max-width: 768px) {
body
{ background-color: lightgreen;
}
}
๋ฏธ๋์ด ์ ํ์๋ 4๊ฐ์ง๊ฐ ์๋ค.
<๊ฐ ๋ฏธ๋์ด ๊ฐ์ฒด์ ๋ณดํธ์ ์ธ ํ๋ฉด ๋์ด(px)>
MDN ๋ฏธ๋์ด ์ฟผ๋ฆฌ ์ฌ์ฉํ๊ธฐ์์ ๋ฏธ๋์ด ํน์ฑ ๋จ๋ฝ์์ ๊ตฌ์ฒด์ ์ธ ํน์ฑ๋ค์ ํ์ธํ ์ ์๋ค.
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
@media (max-width:600px){
body{
background-color: green;
}
}
@media (max-width:500px){
body{
background-color: red;
}
}
@media (min-width:601px){
body{
background-color: blue;
}
}
</style>
</head>
<body>
<ul>
<li>~500px : red</li>
<li>501~600px : green</li>
<li>601px~ : blue</li>
</ul>
</body>
</html>
์น์์ F12๋ฅผ ๋๋ฅด๊ฒ ๋๋ฉด ๊ฐ๋ฐ์ ๋๊ตฌ๊ฐ ๋ํ๋๋ค. ๊ฐ๋ฐ์ ๋๊ตฌ๊ฐ ํ์ฑํ๋๋ฉด ์ค๋ฅธ์ชฝ ์๋จ์ ํ๋ฉด ํฌ๊ธฐ(px๋จ์)๊ฐ ํ์๋๋ค.
์์ฑ๋ ์ฝ๋์ ์กฐ๊ฑด์ธ @media (max-width:600px)
๋ ์คํฌ๋ฆฐ์ ์ต๋๋์ด๊ฐ 600px์ผ ๋ ์กฐ๊ฑด์ ๋ด์ฉ์ด ์คํ๋๋ค๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ฆ, ๋์ด๊ฐ 600px์ดํ์ผ ๋ ์กฐ๊ฑด์ ๋ด์ฉ์ด ์คํ๋๋ค. max, min์ ์๋ฏธ๊ฐ ๊ฐ๋ ํท๊ฐ๋ฆด ์ ์์ผ๋ ์ฃผ์ํ์.
โก cascading์ผ๋ก ์ธํด ๊ฐ์ ์๋ฆฌ๋จผํธ์ media query๋ฅผ ์ ์ฉํ๋ ์์๋ ์ ๋ง ์ค์ํ๋ค.
๋ฐ ์์ ๋ฅผ ์ฐธ๊ณ ํ์.
/* 500px ๋ณด๋ค ์ข์ ๋ ์ ์ฉ*/
@media (max-width:500px) {
body{
background-color: green;
}
}
/* 600px ๋ณด๋ค ์ข์ ๋ ์ ์ฉ*/
@media (max-width:600px){
body{
background-color: red;
}
}
style ํ๊ทธ ์์ ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ์ ์ฝ๋์ ๊ฐ์ด ์ง์ ํ์๋ค. bodyํ๊ทธ๊ฐ 500px์ดํ 600px ์ดํ ๊ตฌ๊ฐ์์ green, red ํจ๊ณผ๋ฅผ ๋์์ ๋ฐ๊ณ ์๋ค. ์ด ๋ ์์์ ์ผ๋ก ๋ ์ข์ ์กฐ๊ฑด์ธ 500px ์ดํ์ผ ๊ฒฝ์ฐ ํ๋ฉด์ ์์ ์ด๋ก์์ด ๋์ด์ผ ํ๋ค. ํ์ง๋ง ์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด 475px์๋ ํ๋ฉด์ ์์ red์ ํจ๊ณผ๊ฐ ์ ์ฉ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ๋ ์กฐ๊ฑด์ ํจ๊ณผ๋ฅผ ์ ์ฉํ๊ธฐ ์ํด์๋ ์กฐ๊ฑด ์์๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ค.
/* 600px ๋ณด๋ค ์ข์ ๋ ์ ์ฉ*/
@media (max-width:600px){
body{
background-color: red;
}
}
/* 500px ๋ณด๋ค ์ข์ ๋ ์ ์ฉ*/
@media (max-width:500px) {
body{
background-color: green;
}
}
๐ ๋์ผํ ์๋ฆฌ๋จผํธ์ ๋ ๊ฐ์ง ์ด์์ ๋ฏธ๋์ด ์ฟผ๋ฆฌ ์กฐ๊ฑด์ ์ฌ์ฉํ ๋ ์์๋ฅผ ์ฃผ์ํ์.
๋ ผ๋ฆฌ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๋ณต์กํ ๋ฏธ๋์ด ์ฟผ๋ฆฌ ์กฐ๊ฑด ์ง์ ์ด ๊ฐ๋ฅํ๋ค.
and ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ์ต๋ ๋์ด๊ฐ 600px์ด๊ณ ์ต๋ ๋์ด๊ฐ 500px์ผ ๋ ์กฐ๊ฑด ๋ด์ฉ์ด ํ์ฑํ ๋๋ค.
@media (max-width:600px) and (max-height:500px) {
body{
background-color: green;
}
}
๋ ผ๋ฆฌ ์ฐ์ฐ์ or๊ณผ ๊ฐ๋ค. ์ต๋ ๋์ด๊ฐ 600px ๋๋ ์ต๋ ๋์ด๊ฐ 500px์ผ ๋ ์กฐ๊ฑด ๋ด์ฉ์ด ํ์ฑํ ๋๋ค. ํ๋์ ์กฐ๊ฑด๋ง ์ฐธ์ ๋ฐํํด๋ ์กฐ๊ฑด ์ ์ฒด ๋ด์ฉ์ด ํ์ฑํ๋๋ค.
@media (max-width:600px) or (max-height:500px) {
body{
background-color: green;
}
}
not ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด์ ๋ถ์ ํ๋ค. min-width:600px์ ๋ฐ๋์ธ min-width:600๋ก ์ ์ฉ๋๋ค.
@media not all and (max-width:600px) {
body{
background-color: green;
}
}
MDN ๋ฏธ๋์ด ์ฟผ๋ฆฌ ์ฌ์ฉํ๊ธฐ
๋ฐ์ํ ์น์ ์ํ ๋ฏธ๋์ด ์ฟผ๋ฆฌ ์ฌ์ฉ๋ฒ(CSS media queries)
์ํ์ฝ๋ฉ media query