๐ ์ ๋๊ฐ, ๊ณ ์ ๊ฐ์ผ๋ก ์ฌ์ฉ ๋๋ ๋จ์
๐ ๋์์ด๋๋ค์ด ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๋จ์์ด๊ณ , ๋์์ธ์ ๋๊ฒจ์ค๋๋ px๋ก ์์
ํด์ ๋๊ฒจ์ฃผ๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ ๊ฐ์ฅ ์ ๋ช
ํ๊ณ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ค.
๐ ์ฌ์ฉํ๊ธฐ ํธํ๊ณ ์ฝ์ง๋ง, ๋ฐ์ํ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค ๋์๋ ์ ์ ํ์ง ์๋ค.
๋ถ๋ชจ ์์์ ๊ธธ์ด์์ ์ฐจ์งํ๋ ๋น์ค
(ex : ์์ ์์์ ํญ์ 80%๋ก ์ค์ ํ์ ๋ โ
๋ถ๋ชจ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก 80% ๋ง ์ฐจ์งํ๊ณ ์๋ค.)
๋ทฐํฌํธ(Viewport)๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ ๊ธธ์ด(length) ๊ฐ
(ex : ์์ ์์์ ํญ์ 80vw์ผ๋ก ์ค์ ํ์ ๋ โ
๋ธ๋ผ์ฐ์ ๋ฅผ ๊ธฐ์ค์ผ๋ก 80vw๋ฅผ ์ฐจ์งํ๋ฏ๋ก, ๋ถ๋ชจ ์์๋ณด๋ค ๋์ด์ ธ๋ฒ๋ฆฐ๋ค.)
๐ ํ๊ฒ ์์์ ๋๋น๊ฐ๊ณผ ๋์ด๊ฐ์ ๋ทฐํฌํธ์ ๋๋น๊ฐ๊ณผ ๋์ด๊ฐ์ ๋ง๊ฒ ์ฌ์ฉํ๋ ค๋ฉด vh, vw๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
vh
: ๋์ด๊ฐ์ 1/100 vw
: ๋๋น๊ฐ์ 1/100
(ex : ๋ธ๋ผ์ฐ์ ์ ๋์ด๊ฐ 1000px์ผ ๋, 1vh = 10px)
%์ vh, vw ์ฐจ์ด ๋ฝ๊ฐ๊ธฐ
vh,vw๋ ์ด๋ ค์๋ ํ๋ฉด ์ ์ฒด์ ์๋ ๊ธธ์ด์ด๊ธฐ ๋๋ฌธ์ ์คํฌ๋กค๋ฐ์ ๊ธธ์ด๋ ํฌํจํ๋ค!
%
: ์คํฌ๋กค๋ฐ๋ฅผ ์ ์ธํ๊ณ ๋ณด์ด๋ ๋ธ๋ผ์ฐ์ ํ๋ฉด์์์ ๋น์ค
vh
vw
: ์คํฌ๋กค๋ฐ๋ฅผ ํฌํจํ๋ ๋ธ๋ผ์ฐ์ ํ๋ฉด์์์ ๋น์ค
๋ทฐํฌํธ์ ๋๋น๊ฐ๊ณผ ๋์ด๊ฐ์ ๋ฐ๋ผ ์ต๋, ์ต์๊ฐ์ ์ง์ ํ ์ ์๋ค.
vmin
: ์น๋ธ๋ผ์ฐ์ ๋๋น์ ๋์ด ์ค์ ๋ ์์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก1/100
vmax
: ์น๋ธ๋ผ์ฐ์ ๋๋น์ ๋์ด ์ค์ ๋ ํฐ ๊ฐ์ ๊ธฐ์ค์ผ๋ก1/100
(ex : ๋ธ๋ผ์ฐ์ ์ ๋์ด๊ฐ 1000px, ๋์ด๊ฐ 800px์ผ ๋,
1vmin = 8px, 1vmax = 10px)
๐ ์ต์์ ์์์ธ html์์ ์ง์ ๋ ๊ธฐ์ค๊ฐ์ ๋น๋ ํ์ฌ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ ์๋์ ์ธ ๊ธธ์ด์ด๋ค.
๐ ๋ฏธ๋์ด์ฟผ๋ฆฌ๋ก css๋ฅผ ์ฒ๋ฆฌํ ๋ ๋ธ๋ ์ดํฌ ํฌ์ธํธ์์ html์ ํฐํธ์ฌ์ด์ฆ๋ง ๋ณ๊ฒฝ ํด์ฃผ๋ฉด ํ์ rem๋จ์์ ํฌ๊ธฐ๊ฐ ์์์ ๋ณ๊ฒฝ ๋๊ธฐ ๋๋ฌธ์ ํธ๋ฆฌํ๋ค.
๐๐ปโโ๏ธ ์ฐธ๊ณ : rem ๊ณ์ฐํด์ฃผ๋ ์ฌ์ดํธ, em,px ๊ณ์ฐํด์ฃผ๋ ์ฌ์ดํธ
(ex : box ์์์ ๋ณด์ฌ์ง๋ font-size๋ rem์ผ๋ก ์ง์ )
๐ ํ์ฌ ์คํ์ผ ์ง์ ์์(=๋ถ๋ชจ ํ๊ทธ)์ ๊ธฐ์ค๊ฐ์ ์ํฅ์ ๋ฐ๋ ์๋์ ์ธ ๊ธธ์ด์ด๋ค.
๐ ๋ถ๋ชจ ์ฌ์ด์ฆ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋์ ์ผ๋ก ์์ง์ธ๋ค.
(ex : rem์ผ๋ก ์ง์ ํ font size๋ฅผ ๊ธฐ์ค์ผ๋ก ๋์์ธ ๋ padding์ด๋ margin ๋ฑ์ em์ผ๋ก ์ง์ )
rem์ em ์ฐจ์ด ๋ฝ๊ฐ๊ธฐ
(๋์์ด๋๊ฐ ๋๊ฒจ์ค ํ์ผ : font๋ 160px, padding์ 64px)๐ rem ์ผ๋ก padding ํฌ๊ธฐ ์ง์
html { font-size: 16px; } .box { font-size: 10rem; padding: 4rem; }
font-size
: ์ต์์ html์ font size(๊ธฐ์ค๊ฐ)์ด 16px์ด๊ธฐ ๋๋ฌธ์, 10rem์ 1610 = 160px์ด ๋๋ค.
padding
: ๋ง์ฐฌ๊ฐ์ง๋ก ๊ธฐ์ค๊ฐ์ด 16px์ด๋ฏ๋ก, 4rem์ 164 = 64px์ด ๋๋ค.
โ ๊ทธ๋ฐ๋ฐ ๊ฐ์๊ธฐ font size๋ฅผ 2๋ฐฐ๋ก ๋๋ ค๋ฌ๋ผ๊ณ ํ๋ค..box { font-size: 20rem; padding: 4rem; }
font๋ ๋์ด๋ฌ์ง๋ง, padding์ ๊ทธ๋๋ก 64px(4rem)์ด๋ผ ๋น์จ์ด ๋ฌ๋ผ์ ธ๋ฒ๋ฆฐ๋ค.
โ font size๋ฅผ 2๋ฐฐ๋ก ๋๋ ค์คฌ๋๋ padding๋ ๋น์จ์ ๋ง๊ฒ 2๋ฐฐ๋ก ๋๋ ค๋ฌ๋ผ๊ณ ํ๋ค..box { font-size: 20rem; padding: 8rem; }
font๋ 2๋ฐฐ, padding๋ 2๋ฐฐ๋ก ๋์ด๋์ ํฌ๊ธฐ๋ง ์ปค์ง๊ณ ๋น์จ์ ๊ทธ๋๋ก
๐ em ์ผ๋ก padding ํฌ๊ธฐ ์ง์ html { font-size: 16px; } .box { font-size: 10rem; padding: 0.4em; }
padding
: ๋ถ๋ชจ ํ๊ทธ.box
์์ ์ง์ ๋ font size : 10rem ์ ๊ธฐ์ค์ผ๋ก 160*0.4 = 64px
โ ๊ทธ๋ฐ๋ฐ font size๋ฅผ 2๋ฐฐ๋ก ๋๋ ค๋ฌ๋ผ๊ณ ํ๋ค..box { font-size: 20rem; padding: 0.4em; }
padding ๊ฐ์ ์์ ํ์ง ์์์ง๋ง, ๊ธฐ์ค์ด ๋๋
.box
ํ๊ทธ์ font-size๊ฐ ์์ ๋๋ฉด์, 0.4em์ ๊ฐ๋ ์ ๋์ ์ผ๋ก ์์ ๋์๋ค.
(20rem = 320px, 320*0.4 = 128px)
๐๐ปโโ๏ธ padding, margin์ด font๋ฅผ ๊ธฐ์ค์ผ๋ก ๋์์ธ๋๊ฑด์ง, ์๋์ง ์ ๋ฐ์ ธ์ ์๋์ ๋ง๊ฒ rem๊ณผ em์ ์ฌ์ฉํ์!