VII. ๋ฐ์ํ ์น๊ณผ ๋ฏธ๋์ด ์ฟผ๋ฆฌ - 1. ๋ฐ์ํ ์น
๋ฐ์ํ ์น ๋์์ธ์ด๋
๋ฐ์ํ ์น ๋์์ธ์ ์น ์์๋ฅผ ํ๋ฉด ํฌ๊ธฐ์ ๋ง๊ฒ ์ฌ๋ฐฐ์นํ๊ณ ๊ฐ ์์์ ํ์ ๋ฐฉ๋ฒ๋ง ๋ฐ๊พธ์ด ์ฌ์ดํธ๋ฅผ ๊ตฌํํด ์ค๋ค.
๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๋ฅผ ์ํ ๋ทฐํฌํธ
๋ฐ์ํ ์น ๋์์ธ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ๋ฌ์ผ ํ ๊ฒ์ด ๋ทฐํฌํธ(viewport)์ด๋ค.
PC์ ๋ง๊ฒ ์ ์๋ ์น ์ฌ์ดํธ๋ฅผ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ์์ ๋ณด๋ฉด ๋ชจ๋ ๋ด์ฉ์ด ์๊ฒ ํ์๋๋ค.
๊ทธ ์ด์ ๋ ํ์๋๋ ํฝ์ ์ ์ฐจ์ด ๋๋ฌธ์ธ๋ฐ, ๋ทฐํฌํธ๋ฅผ ์ง์ ํ๋ฉด ์ ์ํ ๊ธฐ๊ธฐ์ ํ๋ฉด์ ๋ง์ถ์ด ํ๋ํ๊ฑฐ๋ ์ถ์ํด์ ํ์ํ ์ ์๋ค.
์ด๋ ๋ทฐํฌํธ๋ ์ค๋งํธํฐ ํ๋ฉด์์ ์ค์ ๋ด์ฉ์ด ํ์๋๋ ์์ญ์ด๋ค.
์๋ฅผ ๋ค์ด PCํ๋ฉด์ ๋ง์ถฐ์ ์ ์ํ ์ฌ์ดํธ๋ฅผ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ์์ ํ์ธํ๋ฉด ์๋ PCํ๋ฉด ํฌ๊ธฐ๋งํผ ํ์ํ๋ฏ๋ก ๊ธ์๊ฐ ์์ฃผ ์๋ค.
๋ํ ๋ชจ๋ฐ์ผ ์ฌ์ดํธ์ ์ ํฉํ ์ฌ์ดํธ๋ฅผ ์ ์ํ๋๋ผ๋ ์ ์ ์ค๋งํธํฐ ํ๋ฉด์์ ๋ด์ฉ์ ํ์ธํ๋ฉด ์๋ ์๋ํ ๋๋ก ํ์๋์ง ์๊ธฐ๋ ํ๋ค.
์ด๊ฒ์ ์นํคํธ(webkit)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ ๋ทฐํฌํธ ๋๋น๊ฐ 980px์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๋ค์ ๋งํด ์น ํ์ด์ง ๋๋น๋ฅผ ์ค๋งํธํฐ์ฉ์ธ 320px๋ก ๋ง์ถ์ด ์น ์ฌ์ดํธ๋ฅผ ์ ์ ํ๋๋ผ๋ ์ค๋งํธํฐ์ฉ ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ ๋ทฐํฌํธ ๋๋น๊ฐ 980px์ด๋ฏ๋ก ์น ํ์ด์ง ๋๋น๋ฅผ ๋ฌด์กฐ๊ฑด 980px๋ก ํ์ํ๋ ค๊ณ ํ๋ค.
๊ฒฐ๊ตญ ์ค๋งํธํฐ์ฉ์ผ๋ก ์ ์๋ ์น ํ์ด์ง์ ๋ด์ฉ์ ์๋์ ๋ฌ๋ฆฌ ์์ ๊ธ์จ์ ๊ทธ๋ฆผ์ผ๋ก ํ์๋๋ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ฏ๋ก ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ์ ์ ํฉํ ์ฌ์ดํธ๋ฅผ ์ ์ํ๋ ค๋ฉด ๋ทฐํฌํธ ๊ฐ๋ ์ ๊ผญ ์์์ผ ํ๋ค.
๋ทฐํฌํธ ์ง์ ํ๊ธฐ
๋ทฐํฌํธ๋ <meta> ํ๊ทธ๋ฅผ ์ด์ฉํด <head>์ </head> ํ๊ทธ ์ฌ์ด์ ์์ฑํ๋ค. ๋ทฐํฌํธ๋ฅผ ์ง์ ํ๋ ๊ธฐ๋ณธํ์ ๋ค์๊ณผ ๊ฐ๋ค.
<meta name="viewport" content="์์ฑ=๊ฐ1", "์์ฑ2=๊ฐ2", ......>
์ด์ ๊ฐ์ด content ์์ฑ์ ์ด์ํด ๋ทฐํฌํธ ์์ฑ๊ณผ ์์ฑ๊ฐ์ ์ง์ ํ๋ฉด ๋๋๋ฐ, content ์์์ ์ฌ์ฉํ๋ ๋ทฐํฌํธ์ ์์ฑ์ ๋ค์ ํ์ ๊ฐ๋ค.
์ข ๋ฅ | ์ค๋ช | ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ | ๊ธฐ๋ณธ๊ฐ |
width | ๋ทฐํฌํธ ๋๋น | device-width ๋๋ ํฌ๊ธฐ | ๋ธ๋ผ์ฐ์ ๊ธฐ๋ณธ๊ฐ |
height | ๋ทฐํฌํธ ๋์ด | device-height ๋๋ ํฌ๊ธฐ | ๋ธ๋ผ์ฐ์ ๊ธฐ๋ณธ๊ฐ |
user-scalable | ํ๋, ์ถ์ ๊ฐ๋ฅ ์ฌ๋ถ | yes ๋๋ no (yes๋ 1๋ก, device-width์ device-height๊ฐ์ 10์ผ๋ก ๊ฐ์ฃผ) |
yes |
initial-scale | ์ด๊ธฐ ํ๋, ์ถ์ ๊ฐ | 1~10 | 1 |
๋ค์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๋ทฐํฌํธ ์์ฑ์ผ๋ก ์น ํ์ด์ง ๋ทฐํฌํธ์ผ ใ ฃ๋๋น๋ฅผ ์ค๋งํธํฐ ํ๋ฉด ๋๋น์ ๋ง์ถ๊ณ ์ด๊ธฐ ํ๋ฉด ๋ฐฐ์จ์ 1๋ก ์ง์ ํ๋ค.
<meta name="viewport" content="width=device-width, initial-scale=1">
๋ทฐํฌํธ ๋จ์
๋ทฐํฌํธ ๊ฐ๋ ์ด ๋ฑ์ฅํ๊ธฐ ์ ๊น์ง๋ CSS์์ ํฌ๊ธฐ๋ฅผ ์ง์ ํ ๋ ์ฃผ๋ก px, %์ ๋จ์๋ฅผ ์ฌ์ฉํ์ง๋ง ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ด ๋ทฐํฌํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ ๋จ์๋ฅผ ์ฌ์ฉํ ์๋ ์๋ค.
vw(viewport width) | 1vw๋ ๋ทฐํฌํธ ๋๋น์ 1%์ ๊ฐ๋ค. |
vh(viewport height) | 1vh๋ ๋ทฐํฌํธ ๋์ด์ 1%์ ๊ฐ๋ค. |
vmin(viewport minimum) | ๋ทฐํฌํธ์ ๋๋น์ ๋์ด ์ค์์ ์์ ๊ฐ์ 1%์ ๊ฐ๋ค. |
vmax(viewport maximum) | ๋ทฐํฌํธ ๋๋น์ ๋์ด ์ค์์ ํฐ ๊ฐ์ 1%์ ๊ฐ๋ค. |
์๋ฅผ ๋ค์ด ๋ทฐํฌํธ์ ๋๋น๊ฐ 1000px, ๋์ด๊ฐ 800px ์ผ ๊ฒฝ์ฐ 1vw๋ 10px, 1vh๋ 8px์ด ๋ ๊ฒ์ด๋ค.
1vmin์ 8px, 1vmax๋ 10px๊ฐ ๋๋ค. ๋ง์ผ ํ๋ฉด์ ๋๋ฆฌ๋ฉด ์ด ๊ฐ๋ค์ด ๋ณํ ์ ์๋ค.
๋ค์ ์์ ๋ ๊ธ์ ํฌ๊ธฐ๋ฅผ 5vw๋ก ์ง์ ํด์ ๋ทฐํฌํธ ํฌ๊ธฐ๊ฐ ๋ฌ๋ผ์ง ๋๋ง๋ค ์ ๋ชฉ์ ๊ธ์ ํฌ๊ธฐ๊ฐ ์๋์ ์ผ๋ก ๋ฌ๋ผ์ง๋๋ก ํ ๊ฒ์ด๋ค.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Html-basic</title>
<style>
h1{
font-size: 5vw;
text-align: center;
}
</style>
</head>
<body>
<h1>์๋
ํ์ธ์?</h1>
</body>
</html>