ํท๊ฐ๋ ธ๋ CSS ๋จ์ ๊ฐ๋ ์ ์ด๋ฒ ๊ธ์์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.
๐ CSS ์ฃผ์ ๋จ์ ์ ๋ฆฌ
1. px - ํฝ์
- css๋ฅผ ์์ฑํ ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ๋ ๋จ์์ด๋ค.
- ํ๋ฉด์ ์ค์ ํฝ์ ์๋ฅผ ์๋ฏธํ๋ค.
2. em - ๋ถ๋ชจ์ ํฐํธ ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ ์๋ ๋จ์
- ๋ถ๋ชจ ์์์ ํฐํธ ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ํฌ๊ธฐ ๋น์จ์ด ์ ํด์ง๋ค.
- ํ ๊ฐ์ง ์ ์ํ ์ฌํญ์ ๋ถ๋ชจ>์์>ํ์ ์์๊ฐ ์ค์ฒฉ๋ ์๋ก ๊ณ์ฐ์ด ๋์ ๋๊ธฐ ๋๋ฌธ์ ์ฃผ์ํด์ผํ๋ค.
/* ๋ถ๋ชจ ์์ */
body {
font-size: 16px;
}
/* ์์ ์์ */
h1 {
font-size: 2em; /* 32px */
}
/* ํ์ ์์ */
span {
font-size: 2em; /* 64px: 2em x 32px */
}
3. rem - ๋ฃจํธ ์์(html)์ ํฐํธ ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ ์๋ ๋จ์
- html ํ๊ทธ์ ํฐํธ ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ํด์ em๋ณด๋ค ์์ธก์ด ์ฝ๋ค.
/* ๋ถ๋ชจ ์์ */
body {
font-size: 16px;
}
/* ์์ ์์ */
h1 {
font-size: 2em; /* 32px */
}
/* ํ์ ์์ */
span {
font-size: 2em; /* 32px */
}
4. % - ๋ถ๋ชจ ์์์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ณํํ๋ ๋ฐฑ๋ถ์จ
- ๋ถ๋ชจ ์์์ ํฌ๊ธฐ์ ๋ฐ๋ผ ์ ๋์ ์ผ๋ก ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋๋ค.
- ๋๋น, ๋์ด, ํฐํธ ๋ฑ ๋ค์ํ ์์ฑ์ ์ฌ์ฉํ ์ ์๋ค.
.container {
width: 1000px;
}
.child {
width: 50%; /* 500px */
}
5. vw, vh - viewport๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ ๋จ์
- 1vw = ๋ทฐํฌํธ ๋๋น์ 1%
- 1vh = ๋ทฐํฌํธ ๋์ด์ 1%
๋ชจ๋ฐ์ผ ์น์ ๊ตฌํํ ๋ 100vh๋ฅผ ์ฌ์ฉํ๋ฉด
๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ์ ์ฃผ์์ฐฝ์ด๋ ํ๋จ UI๋ก ์ธํด ๊ฐ๋ ค์ง๋ ๊ฒฝ์ฐ๊ฐ ์๊ธด๋ค.
์ด๋ด ๋ ์ฌ์ฉํ๋ฉด ์ข์ ๋จ์๊ฐ ๋ฐ๋ก lvh, svh, dvh์ด๋ค.
| ๋จ์ | ์๋ฏธ |
| lvh | ์ฃผ์ ์ฐฝ์ด ์ฌ๋ผ์ก์ ๋ ๋์ด๋ฅผ ๊ณ์ฐํ ๊ฐ → ์ฌ์ฉ์ ํ๋ฉด์ ์ต๋ ํฌ๊ธฐ |
| svh | ์ฃผ์์ฐฝ์ด ๋ณด์ด๊ณ ์์ ๋์ ๋์ด๋ฅผ ๊ณ์ฐํ ๊ฐ → ์ฌ์ฉ์ ํ๋ฉด์ ์ต์ ํฌ๊ธฐ |
| dvh | ๋์ ์ผ๋ก ๋ณํ๋ ๋ทฐํฌํธ ๋์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ณ์ฐํ ๊ฐ → ์ํ๋ ํ๋ฉด์ ๊ตฌํํ๊ธฐ์ ๊ฐ์ฅ ์ด์์ ์ |
6. vmin, vmax - viewport์ ์งง์ ์ชฝ / ๊ธด ์ชฝ์ ๊ธฐ์ค์ผ๋ก ํ๋ ๋จ์
- 1vmin = ๋ทฐํฌํธ ๋๋น/๋์ด ์ค ์์ ์ชฝ์ 1%
- 1vmax = ๋ทฐํฌํธ ๋๋น/๋์ด ์ค ํฐ ์ชฝ์ 1%
vmin, vmax๋ ์ ๋ฆฌํ๋ฉด์๋ ์ด๊ฑธ ์ธ์ ์ฌ์ฉํ๋ ๊ฑธ๊น ๊ถ๊ธํ๋๋ฐ,
์ฐพ์๋ณด๋ ๊ฐ๋ก/์ธ๋ก ํ์ ์ด ์ผ์ด๋๋ ํ๋ฉด ๋น์จ์ด ์์ฃผ ๋ฐ๋๋ ํ๊ฒฝ์์ ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
๐ ์ฐธ๊ณ ์๋ฃ
https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Styling_basics/Values_and_units
https://web.dev/blog/viewport-units?hl=ko
728x90