...

CSS์ ํฌ๊ธฐ ๋จ์
ํ์ค์์ cm, mm, inch ๋ฑ์ ๋จ์๋ ์กด์ฌํ๋, CSS์์ ์ฌ์ฉํ๋ ๋ํ์ ์ธ ํฌ๊ธฐ ๋จ์๋ px, em, %์ด๋ค.
px์ ์ ๋๊ฐ์ด๊ณ em, %๋ ์๋๊ฐ์ด๋ค. ํ๋กํผํฐ ๊ฐ์ด 0์ธ ๊ฒฝ์ฐ, ๋จ์๋ฅผ ์๋ตํ ์ ์๋ค.
๋๋ถ๋ถ ๋ธ๋ผ์ฐ์ ์ ํฐํธ ์ฌ์ด์ฆ ๊ธฐ๋ณธ๊ฐ์ 16px, 1em, 100% ๋ก ์ค์ ๋์ด ์๋ค.
px ๋จ์
px์ ํฝ์ (ํ์) ๋จ์์ด๋ค. 1px์ ํ์ 1๊ฐ ํฌ๊ธฐ๋ฅผ ์๋ฏธํ๋ค.
22์ธ์น LCD ๋ชจ๋ํฐ์ ๊ฒฝ์ฐ ํด์๋๊ฐ 1680 * 1050 ์ธ๋ฐ ์ด๊ฒ์ ๊ฐ๋ก์ 1680๊ฐ์ ํฝ์ , ์ธ๋ก์ 1050๊ฐ์ ํฝ์ ์ ๊ฐ์ง๋ค๋ ์๋ฏธ์ด๋ค. px์ ์์์ ํฌ๊ธฐ๋ ์ด๋ฏธ์ง์ ํฌ๊ธฐ ์ง์ ์ ์ฃผ๋ก ์ฌ์ฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ํฝ์ ์ ๋๋ฐ์ด์ค ํด์๋(resolution)์ ๋ฐ๋ผ ์๋์ ์ธ ํฌ๊ธฐ๋ฅผ ๊ฐ๋๋ค. ์๋์ 1920x1080 ๋๋ฐ์ด์ค์ 3840x2160 ๋๋ฐ์ด์ค์ ์์ ๋ค๋ชจ์ธ 1 ํฝ์ ์ด ํํํ๊ณ ์๋ ์ด๋ฏธ์ง ๋ฒ์๊ฐ ๋ค๋ฅธ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ด์ ๊ฐ์ด ๋๋ฐ์ด์ค ๋ณ๋ก ํฝ์ (ํ์)์ ํฌ๊ธฐ๋ ์ ๊ฐ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ํฝ์ ์ ๊ธฐ์ค์ผ๋ก ํ๋ ๋จ์๋ ๋ช ํํ์ง ์๋ค. ๋ฐ๋ผ์ ๋๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ ๋ 1px์ 1/96 ์ธ์น์ ์ ๋๋จ์๋ก ์ธ์ํ๋ค.

% ๋จ์
%๋ ๋ฐฑ๋ถ๋ฅ ๋จ์์ ์๋ ๋จ์์ด๋ค.
์์์ ์ง์ ๋ ์ฌ์ด์ฆ(์์๋ ์ฌ์ด์ฆ๋ ๋ํดํธ ์ฌ์ด์ฆ)์ ์๋์ ์ธ ์ฌ์ด์ฆ๋ฅผ ์ค์ ํ๋ค.
body {
font-size: 14px;
text-align: center;
}
div {
font-size: 120%; /* 14px * 1.2 = 16.8px */
font-weight: bold;
padding: 2em; /* 16.8px * 2 = 33.6px */
background-color: rgba(255, 0, 0, 0.2);
}
em ๋จ์
em์ ๋ฐฐ์(ๅๆธ) ๋จ์๋ก ์๋ ๋จ์์ด๋ค.
์์์ ์ง์ ๋ ์ฌ์ด์ฆ(์์๋ ์ฌ์ด์ฆ๋ ๋ํดํธ ์ฌ์ด์ฆ)์ ์๋์ ์ธ ์ฌ์ด์ฆ๋ฅผ ์ค์ ํ๋ค. ์๋ฅผ ๋ค์ด 1em์ ์์์ ์ง์ ๋ ์ฌ์ด์ฆ์ ๊ฐ๊ณ 2em์ ์์์ ์ง์ ๋ ์ฌ์ด์ฆ์ 2๋ฐฐ์ด๋ค.
body {
font-size: 14px;
text-align: center;
}
div {
font-size: 1.2em; /* 14px * 1.2 = 16.8px */
font-weight: bold;
padding: 2em; /* 16.8px * 2 = 33.6px */
}
โ
em์ ์๋ ๊ธฐ์ค์ ๋ถ๋ชจ ์์
๋ง์ผ ์ค์ฒฉ๋ ์์ ์์์ em์ ์ง์ ํ๋ฉด ๋ชจ๋ ์์ ์์์ ์ฌ์ด์ฆ์ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ ์ฃผ์ํ์ฌ์ผ ํ๋ค.
์ฆ, ์๋ ๋จ์์ธ em์ ๊ธฐ์ค์ด ์์์ ์ํฅ์ผ๋ก ๋ฐ๋ ์ ์๊ธฐ ๋๋ฌธ์, ์๋๋์ง ์์ ์ํฉ์ด๋ผ๋ฉด ๋ฒ๊ทธ์ ๊ฐ์ ํ์์ด ์ผ์ด๋๊ธฐ ๋๋ฌธ์ด๋ค.
<body>
<div class='box1'> <!-- Font size: 1.2em โ 14px * 1.2 = 16.8px -->
<div class='box2'> <!-- Font size: 1.2em โ 16.8px * 1.2 = 20.16px -->
<div class='box3'> <!-- Font size: 1.2em โ 20.16px * 1.2 = 24.192px -->
</div>
</div>
</div>
</body>
rem ๋จ์
em์ ๊ธฐ์ค์ ์์์ ์ํฅ์ผ๋ก ๋ฐ๋ ์ ์๋ค. ์ฆ, ์ํฉ์ ๋ฐ๋ผ 1.2em์ ๊ฐ๊ธฐ ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
๋ฐ๋ฉด rem์ ์ต์์ ์์(html)์ ์ฌ์ด์ฆ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ๋๋ค. ๊ทธ๋์ ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ ํฐํธ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๋๋ผ๋ ์ด์ ๋ฐ๋ผ ์น์ฌ์ดํธ์ ๋ ์ด์์์ ์ ์ ํ ์กฐ์ ํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค. ๋ฐ๋ผ์ ํฐํธ ์ฌ์ด์ฆ ๋ฟ๋ง์ด ์๋๋ผ ์ฝํ ์ธ ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๊ฐ๋ณ์ ์ผ๋ก ๋์ํ์ฌ์ผ ํ๋ wrapper ์์(container) ๋ฑ์ ์ ํฉํ๋ค
rem์ r์ root๋ฅผ ์๋ฏธํ๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
html {
font-size: 14px; /* font-size ๋ฏธ์ง์ ์์๋ 16px */
}
div {
font-size: 1.2rem; /* html font-size: 14px * 1.2 = 16.8px */
font-weight: bold;
padding: 2em;
text-align: center;
}
<body>
<div class='box1'> <!-- Font size: 1.2rem โ 14px * 1.2 = 16.8px -->
<div class='box2'> <!-- Font size: 1.2rem โ 14px * 1.2 = 16.8px -->
<div class='box3'> <!-- Font size: 1.2rem โ 14px * 1.2 = 16.8px -->
</div>
</div>
</div>
</body>
vw / vh ๋จ์
๋ฐ์ํ ์น๋์์ธ์ ํ๋ฉด์ ํฌ๊ธฐ์ ๋์ ์ผ๋ก ๋์ํ๊ธฐ ์ํด % ๋จ์๋ฅผ ์์ฃผ ์ฌ์ฉํ๋ค. ํ์ง๋ง % ๋จ์๋ em๊ณผ ๊ฐ์ด ์์์ ์ํด ๋ถ๋ชจ ์์์ ์๋์ ์ํฅ์ ๋ฐ๋๋ค.
๋ฐ๋ฉด โViewport ๋จ์๋ ์๋์ ์ธ ๋จ์๋ก ๋ธ๋ผ์ฐ์ ๋๋น๋ฅผ ๊ธฐ์ค์ผ๋ก ํ ์๋์ ์ฌ์ด์ฆ๋ฅผ ์๋ฏธํ๋ค. (๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉ์์๊ฒ ๋ณด์ด๋ ๋ถ๋ถ์ viewport ๋ผ๊ณ ํ๋ค)
vw์ vh๋ ํ์ฌ ๋ธ๋ผ์ฐ์ ์ ๊ฐ๋ก์ ์ธ๋ก ๊ฐ์ด๋ผ ๋ณผ์ ์๋ค. ๋ธ๋ผ์ฐ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ฉด ์ด ์ญ์ ๊ฐ์ด ์ค์ด๋ ๋ค. ์ฆ, rem์ด ๋ฃจํธ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋์ ์ธ ํฌ๊ธฐ๋ฅผ ๊ตฌํ๋ฏ์ด, ๋ธ๋ผ์ฐ์ ๊ธธ์ด๋ฅผ ์ ๋๊ฐ์ผ๋ก ์ผ๊ณ ๊ธฐ์ค์ผ๋ก ์๋์ ์ธ ์ฌ์ด์ฆ๋ฅผ ์กฐ์ ํ๋ ๊ฒ์ผ๋ก ๋ณด๋ฉด๋๋ค.
๋จ์ | Description |
vw | viewport ๋๋น์ 1/100 |
vh | viewport ๋์ด์ 1/100 |
vmin | viewport ๋๋น ๋๋ ๋์ด ์ค ์์ ์ชฝ์ 1/100 |
vmax | viewport ๋๋น ๋๋ ๋์ด ์ค ํฐ ์ชฝ์ 1/100 |
์๋ฅผ ๋ค์ด ๋ธ๋ผ์ฐ์ ๋๋น๊ฐ 1000px, ๋์ด๊ฐ 600px์ธ ๊ฒฝ์ฐ,
- 100vw : 1000px
- 100vh : 600px
- 1vw : viewport ๋๋น 1000px์ 1%์ธ 10px
- 1vh : viewport ๋์ด 600px์ 1%์ธ 6px
- 1vmin : viewport ๋์ด 600px์ 1%์ธ 6px
- 1vmax : viewport ๋๋น 1000px์ 1%์ธ 10px
# ์ฐธ๊ณ ์๋ฃ
https://poiemaweb.com/css3-units
์ด ๊ธ์ด ์ข์ผ์ จ๋ค๋ฉด ๊ตฌ๋ & ์ข์์
์ฌ๋ฌ๋ถ์ ๊ตฌ๋
๊ณผ ์ข์์๋
์ ์์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค.