์๋ ๋ด์ฉ์ ์ฐ์ํํ ํฌ: [10๋ถ ํ ์ฝํก] ์ ์๋ฆฌ์ CSS์ ๋จ์ ์์์ ์ฐธ๊ณ ํ ๊ธ์ ๋๋ค. ์ ์ตํ ๋ด์ฉ ๋ฐํํด์ฃผ์ ์ ์๋ฆฌ ๋๊ป ๊ฐ์ฌ๋ฅผ ํํ๋ฉฐ, ์์์ ํตํด ํ์ตํ ๋ด์ฉ์ ์๋์ ์ ๋ฆฌํด ๋ณด์์ต๋๋ค.
0. CSS ๋จ์ : length ์๋ฃํ
CSS ๋จ์๋ CSS์์ ์ฌ์ฉ๋๋ ๊ฐ๋ค์ ๊ธธ์ด๋ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๊ธฐ ์ํ ๋จ์์ด๋ค. ์ค๋์ CSS์ ๋จ์๋ค ์ค, length ์๋ฃํ์ ์ํ๋ ๋จ์๋ค์ ์์๋ณด๊ฒ ๋ค.
length๋ ํฐํธ ์ฌ์ด์ฆ๋ฟ๋ง ์๋๋ผ width๋ height์ ๊ฐ์ด ๊ธธ์ด๊ฐ์ ๋ํ๋ด๋ ์๋ฃํ์ด๋ค. CSS์์๋ ๊ธธ์ด๊ฐ์ ๋ํ๋ด๊ธฐ ์ํด์ px, rem, em๋ฑ๊ณผ ๊ฐ์ ๋ค์ํ ๋จ์๋ค์ด ์๋๋ฐ ๊ทธ ๋จ์๋ค์ ํฌ๊ฒ ์ ๋ ๊ธธ์ด ๋จ์์ ์๋๊ธธ์ด ๋จ์๋ก ๋๋๊ฒ ๋๋ค.
์ ๋ ๊ธธ์ด ๋จ์๋ px, inch, pt์ ๊ฐ์ด ๊ณ ์ ๋ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ ๋จ์๊ณ , ์๋๊ธธ์ด ๋จ์๋ em, rem, lh, vw, vh์ ๊ฐ์ด ํน์ฑ ์์์ ํฌ๊ธฐ๋ ๋ทฐํฌํธ์ ํฌ๊ธฐ์ ์๋์ ์ธ ํฌ๊ธฐ๋ฅผ ๋ํ๋ผ ์ ์๋ ๋จ์๋ค. ์๋์ ์ธ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ ๋์์ธ์ ํ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ ์ ์๋ค.
CSS length ์๋ฃํ์๋ ์ด๋ ๊ฒ ๋ง์ ๋จ์๋ค์ด ์๋๋ฐ, ์ด ์ค์์ ์์ฃผ ์ฌ์ฉ๋๋ ๊ฒ๋ค์ ๋ํด์ ์กฐ๊ธ ๋ ์์๋ณด๊ธฐ๋ก ํ์.
1. px
px์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ด๊ณ ์์ฃผ ์ฌ์ฉ๋๋ ์ ๋ ๊ธธ์ด ๋จ์๋ค. ์๋ ํ๋ฉด์์ ์ ์ฌ๊ฐํ ํ๋๊ฐ ํ ํฝ์ ๋จ์๋ค. px์ ๋ชจ๋ ํ๋ฉด์์ ๊ณ ์ ๋ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ ๋จ์์ด๊ธฐ ๋๋ฌธ์ ํฌ๊ธฐ๋ ์์น๊ฐ ํญ์ ์ผ์ ํ๊ฒ ์ ์ง๋๋ค. ์์๋ฅผ ํตํด ์กฐ๊ธ ๋ ์์ธํ ์์๋ณด๊ฒ ๋ค.
์๋ ํ๋ฉด์ ๋๋น๋ 1680px์ด๊ณ , ํ๋์ ๋ฐ์ค์ ๋๋น๋ 800px์ด๋ค.
์ด๋ฒ์๋ ํ๋ฉด์ด 1000px์ผ ๋๋ค. ํ๋ฉด์ ๋๋น๋ ์ค์์ง๋ง ๋ฐ์ค์ ํฌ๊ธฐ๋ ๊ทธ๋๋ก์ธ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ด์ ์ด ํ๋ฉด์ 500px๋ก ์ค์ด๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
์ด๋ ๊ฒ ๋ฐ์ค๊ฐ ํ๋ฉด์์ ์๋ฆฌ๊ฒ ๋๋ค. ๊ทธ๋์ ์๋ค๋ก ์คํฌ๋กค์ ํด์ผ ๋ฐ์ค ์์ ์๋ ๋ด์ฉ์ ์ฝ์ ์ ์๋ค. ์ด๋ฐ ์ด์ ๋ ํ๋ฉด์ ๋๋น๋ 500px๋ก ์ค์์ง๋ง, ๋ฐ์ค์ ํฌ๊ธฐ๋ ์ฌ์ ํ 800px ์ด๋ผ๋ ๊ณ ์ ๋ ๊ฐ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ px์ ๋ณดํต ํฌ๊ธฐ๋ ์์น๊ฐ ํญ์ ์ผ์ ํ๊ฒ ์ ์ง๋์ด์ผ ํ๋ ๊ฒฝ์ฐ์ ๋ง์ด ์ฌ์ฉ๋๋ค.
2. vw
๊ทธ ๋ค์์ผ๋ก ์ค๋ช ํ ๋จ์๋ vw๋ค. vw์ viewport width์ ์ฝ์๋ก, ๋ณด์ด๋ ํ๋ฉด์ ๋๋น๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ ๋ฐฑ๋ถ์จ ๋จ์๋ค. ๊ทธ๋์ 1vw๋ ๋ทฐํฌํธ ๋๋น์ 1%๊ฐ ๋๋ค.
1vw = ๋ทฐํฌํธ ๋๋น์ 1%
์ฆ, ๋ณด์ด๋ ํ๋ฉด์ ๋๋น๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ ๋ฐฑ๋ถ์จ ๋จ์
์ด๋ฒ์๋ ๋ฐ์ค์ ๋๋น๋ฅผ 50vw๋ก ์ค์ ํด๋ดค๋ค. ํ๋ฉด์ด 1680px์ผ ๋ 50vw๋ ํ๋ฉด ๋๋น์ 50%์ธ 840px์ด ๋๋ค.
์ด๋ ํ๋ฉด์ ๋๋น๊ฐ 500px์ผ ๋์๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค. ๋ฐ์ค์ ๊ฐ์ ์ฌ์ ํ 50vw์ด์ง๋ง ํ๋ฉด ๋๋น์ธ 500px์ ๋ฐ, ์ฆ 250px์ ํฝ์ ๊ฐ์ผ๋ก ๊ฐ์ง๊ฒ ๋๋ค.
๋ฐ๋ผ์ ํ๋ฉด์ด ๋ชจ๋ 1680px์ผ ๋, ์ ๋ ๋จ์์ธ px์ ์ฌ์ฉํ ๊ฒ๊ณผ ๋ฌ๋ฆฌ, ์๋๊ธธ์ด์ธ vw์ ์ฌ์ฉํ์ ๋์ ์ฐจ์ด๋ ๋ค์๊ณผ ๊ฐ๋ค.
px์ ์ฌ์ฉํ์ ๋๋ ๋ฐ์ค๊ฐ ํ๋ฉด์์ ์๋ ค์ ์คํฌ๋กค ํ๋ฉด์ ์ฝ์ด์ผ ํ๋ ๋ฐ๋ฉด, vw์ ์ฌ์ฉํ ๋ฐ์ค๋ ํ๋ฉด ์์ ๋ฑ ๋ง์์ ํ๋์ ๋ฐ์ค ์์ ์๋ ๋ด์ฉ์ ๋ณด๋ค ํธํ๊ฒ ์ฝ์ ์ ์๋ค.
3. vh
๋ค์์ผ๋ก ์ค๋ช ํ ๋จ์๋ vh๋ค. viewport height์ ์ฝ์๋ก, ๋ทฐํฌํธ์ ‘๋์ด’๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ ๋ฐฑ๋ถ์จ ๋จ์๋ค. 1vh๋ ๋ทฐํฌํธ ๋์ด์ 1%๊ฐ ๋๋ค.
1vh = ๋ทฐํฌํธ ๋์ด์ 1%
์ฆ, ๋ณด์ด๋ ํ๋ฉด์ ๋์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ ๋ฐฑ๋ถ์จ ๋จ์
๋ฐ๋ผ์ 60vh ๋์ด๋ฅผ ๊ฐ์ง ๋ฐ์ค๋ ํ๋ฉด ๋์ด์ ๋น๋กํด์ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ํ๋ฉด ๋์ด๊ฐ 400px๋ก ์ค์ด๋ค๋ฉด ๋ฐ์ค์ ๋์ด ๊ฐ๋ 579px์์ 240px๋ก ์ค์ด๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
4. em
๊ทธ ๋ค์์ผ๋ก ์ค๋ช ํ ๋จ์๋ 'em'์ด๋ค. 'em'์ ๋ถ๋ชจ์ ํฐํธ ์ฌ์ด์ฆ๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋์ ์ผ๋ก ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์๋ ๋จ์์ด๋ค. ์๋ฅผ ๋ค์ด ๋ถ๋ชจ์ ํฐํธ ์ฌ์ด์ฆ๊ฐ 32px์ด๋ฉด 1em ๊ฐ์ 32px, 2em ๊ฐ์ 64px์ด ๋๋ค.
1em = ๋ถ๋ชจ์ ํฐํธ ์ฌ์ด์ฆ
์ฆ, ๋ถ๋ชจ ํฐํธ ์ฌ์ด์ฆ๊ฐ 32px์ผ ๋, 1em = 32px
์๋์ ๊ฐ์ด, ์ฐํ ํ๋์ ๋ฐ์ค์ธ ๋ถ๋ชจ ์ปจํ ์ด๋์ ํฐํธ ์ฌ์ด์ฆ๊ฐ 24px์ผ ๋, ๊ทธ ์์ ์์์ธ ์งํ ํ๋์ ๋ฐ์ค์ 1em ๊ฐ๋ 24px์ด ๋๋ค. ๋ฐ๋ผ์ 1.5em์ผ๋ก ์ค์ ํ๋ฉด 36px์ด ๋๊ณ , ๋๋น๊ฐ 36em์ผ ๋ 1,296px์ด ๋๋ค.
์๋ ๊ฒฝ์ฐ์๋ ์งํ ํ๋์ ๋ฐ์ค์ ํฐํธ ์ฌ์ด์ฆ๋ ์ฌ์ ํ 1.5em์ด๋ฉฐ, ๋๋น๊ฐ 36em์ธ๋ฐ, ๋ถ๋ชจ์ ํฐํธ ์ฌ์ด์ฆ๋ฅผ 10px๋ก ์ค์์ ๋์ ์ํฉ์ด๋ค.
๋๋ถ์ด, ์๋์ ๊ฐ์ด ๋๋ ธ์ ๋์ ์ํฉ๋ ๊ณ ๋ คํด ๋ณผ ์ ์๋ค.
์ด๋ ๊ฒ 'em' ๋จ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ถ๋ชจ์ ํฐํธ ์ฌ์ด์ฆ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ๋ง์ผ๋ก๋ ์์ ์์๋ค์ ํฌ๊ธฐ๋ฅผ ๋น๋ก์ ์ผ๋ก ์กฐ์ ํ ์ ์์ด์, ๋ฐ์ํ ๋์์ธ ์์ ์์ฃผ ํ์ฉ๋๋ค.
5. rem
๋ง์ง๋ง์ผ๋ก ์ค๋ช ํ ๋จ์๋ 'rem'์ด๋ค. 'rem'์ ‘root em’์ ์ฝ์๋ก, ๊ธฐ๋ณธ์ ์ธ ์ปจ์ ์ em์์ ๋ฐ์์ผ๋, ๋ถ๋ชจ์ ํฐํธ ์ฌ์ด์ฆ๊ฐ ์๋ 'html' ํฐํธ ์ฌ์ด์ฆ๋ฅผ ๋จ์๋ก ํ๋ค. ๋ฐ๋ผ์ html ํฐํธ ์ฌ์ด์ฆ๊ฐ 10px์ผ ๋ 1rem ๊ฐ์ 10px์ด ๋๊ณ , 2rem์ 20px, 3rem์ 30px์ด ๋๋ค.
1rem = html์ ํฐํธ ์ฌ์ด์ฆ
์ฆ, html์ ํฐํธ ์ฌ์ด์ฆ๊ฐ 10px์ผ ๋, 1rem = 10px
์๋์ ๊ฐ์ด 'html' ํฐํธ ์ฌ์ด์ฆ๊ฐ 16px์ผ ๋, ๋ฐ์ค์ ๋๋น๋ ๊ฐ๊ฐ 30rem์ผ ๋ 48px, 25rem์ผ ๋ 80px, 20rem์ผ ๋ 100px, 15rem์ผ ๋ 240px, 10rem์ผ ๋ 160px์ผ๋ก ๋ณํํ๋ค.
์๋์ ๊ฐ์ด 'html' ํฐํธ ์ฌ์ด์ฆ๋ฅผ 40px๋ก ๋๋ ธ์ ๋๋ ๊ฐ์ ์๋ฆฌ๊ฐ ์ ์ฉ๋๋ค. ๋ฐ์ค์ rem๊ฐ์ ๊ธฐ์กด๊ณผ ๋์ผํ์ง๋ง, 40px์ ๋น๋กํด์ ํฌ๊ธฐ๊ฐ ๋์ด๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก 5px๋ก ์ค์์ ๋๋ ๋ง์ฐฌ๊ฐ์ง๋ค.
๋ฐ๋ผ์ 'rem' ๋จ์๋ฅผ ์ฌ์ฉํ๋ฉด 'html' ํฐํธ ์ฌ์ด์ฆ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ๋ง์ผ๋ก ๋ชจ๋ ์์์ ํฌ๊ธฐ๋ฅผ ์ผ๊ด๋๊ฒ ์กฐ์ ํ ์ ์๊ธฐ์ ๋ฐ์ํ ๋์์ธ์ ์ ์ฉํ๊ฒ ํ์ฉ๋๋ค.
6. rem๊ณผ html ํฐํธ ์ฌ์ด์ฆ์ ๊ด๊ณ
๋๋ถ์ด, ์ผ๋ฐ์ ์ผ๋ก rem์ ์ฌ์ฉํ ๋๋ html ํฐํธ ์ฌ์ด์ฆ๋ฅผ 62.5%๋ก ์ค์ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ์ ๋ํดํธ ํฐํธ ์ฌ์ด์ฆ๊ฐ 16px๋ก ์ ์๋์ด ์์ด์, 'html' ํฐํธ ์ฌ์ด์ฆ๋ฅผ 10px๋ก ์ค์ ํ๋ฉด 1rem ๊ฐ์ด 10px์ด ๋๋๋ก ํ๊ธฐ ์ํจ์ด๋ค.
html { font-size: 62.5% } ⇒ 1rem = 10px
62.5%์ธ ์ด์ ๋ ๊ธฐ๋ณธ ํฐํธ ์ฌ์ด์ฆ์ธ 16px์ ๊ธฐ์ค์ผ๋ก 10px์ ์ป๊ธฐ ์ํ ๊ณ์ฐ ๊ฐ์ผ๋ก, 16px์ 10px๋ก ๋๋๋ฉด 62.5%๊ฐ ๋๋ค. ์ด๋ ๊ฒ ์ค์ ํ๋ฉด 'rem' ๋จ์๋ฅผ ์ฌ์ฉํ ๋ 1rem ๊ฐ์ด 10px๋ก ๊ณ์ฐ๋์ด ํธ๋ฆฌํ๋ค. ๋ฌผ๋ก 'rem' ๊ฐ์ด ์๋ 'px' ๊ฐ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ๋ค์ํ ํฐํธ ์ฌ์ด์ฆ๋ฅผ ์ ์ฉํ๋ ๊ฒฝ์ฐ๋ ์๋ค.
(10px / 16px) * 100% = 62.5%
7. ์ ๋ฆฌํ๋ฉฐ
๊ทธ๋์ ์ธ์ 'px', 'vw', 'vh', 'em', 'rem' ๋ฑ์ ๋จ์๋ฅผ ์ฌ์ฉํ ์ง๋ ์๋์ ๋ ๊ฐ์ง ์ง๋ฌธ์ ๋์ ธ๋ณด์.
1. ์์๊ฐ ํน์ ํฌ๊ธฐ์ ์๋์ ์ผ๋ก ์กฐ์ ํ๊ณ ์ถ์๊ฐ?
2. ๋ง์ฝ ๋ง๋ค๋ฉด, ๋ฌด์์ ๊ธฐ์ค์ผ๋ก ์กฐ์ ํ๊ณ ์ ํ๋๊ฐ?
๋ค์ํ ๋จ์๋ฅผ ํ์ฉํ์ฌ ์น ์์์ ํฌ๊ธฐ์ ๊ฐ๊ฒฉ์ ์กฐ์ ํ๋ฉด ์น์ฌ์ดํธ์ ๋ ์ด์์์ ํฅ์์ํค๊ณ ์ฌ์ฉ์์๊ฒ ๋ ๋์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ ๊ฒ์ด๋ค.
๐ ๋ด์ฉ ์ฐธ์กฐ
- Youtube ์ฐ์ํํ ํฌ: [10๋ถ ํ ์ฝํก] ์ ์๋ฆฌ์ CSS์ ๋จ์
'๐ Web > HTML, CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
HTML์ ์์ฑ ์ด๋ฆ๊ณผ ์์ฑ ๊ฐ์ ์ฐจ์ด๋ ๋ฌด์์ผ๊น? (0) | 2023.02.27 |
---|---|
HTML <div>ํ๊ทธ์ <span>ํ๊ทธ์ ์ฐจ์ด์ ์ดํดํ๊ธฐ (0) | 2023.02.27 |
๋๊ธ