์ต์ ์ ์ ์ด๋ฅผ ์ํด CSS ๋ทฐํฌํธ ๊ท์น, ๋ฉํ ํ๊ทธ ๋ฐ ๋ฐ์ํ ๋์์ธ์ ๊น์ด ์๊ฒ ๋ค๋ฃจ๋ฉฐ ์ ์ธ๊ณ์ ์ผ๋ก ์ํํ ๋ชจ๋ฐ์ผ ์น ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
CSS ๋ทฐํฌํธ ๊ท์น: ๊ธ๋ก๋ฒ ์น ๊ฒฝํ์ ์ํ ๋ชจ๋ฐ์ผ ๋ทฐํฌํธ ์ ์ด ๋ง์คํฐํ๊ธฐ
์์ญ์ต ๋ช ์ ์ฌ์ฉ์๊ฐ ์ฃผ๋ก ๋ชจ๋ฐ์ผ ์ฅ์น๋ฅผ ํตํด ์ธํฐ๋ท์ ์ ์ํ๋ ์ค๋๋ ์ํธ ์ฐ๊ฒฐ๋ ์ธ์์์, ์๋ง์ ํ๋ฉด ํฌ๊ธฐ์ ํด์๋ ์ ๋ฐ์ ๊ฑธ์ณ ์ผ๊ด๋๊ณ ์ต์ ํ๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ณด์ฅํ๋ ๊ฒ์ ๋จ์ํ ์ฅ์ ์ด ์๋๋ผ ์ ๋์ ์ธ ํ์ ์ฌํญ์ ๋๋ค. ๋ชจ๋ฐ์ผ ์น์ ์ปดํฉํธํ ์ค๋งํธํฐ๋ถํฐ ๋ ํฐ ํ๋ธ๋ฆฟ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ค์ํ ํ๊ฒฝ์ ์ ๊ณตํ๋ฉฐ, ๊ฐ ํ๊ฒฝ์ ๋์์ด๋์ ๊ฐ๋ฐ์์๊ฒ ๊ณ ์ ํ ๊ณผ์ ๋ฅผ ์ ์ํฉ๋๋ค. ์ง์ ์ผ๋ก ์ ์ ๊ฐ๋ฅํ๊ณ ์ฌ์ฉ์ ์นํ์ ์ธ ๊ฒฝํ์ ์ ๊ณตํ๋ ํต์ฌ์๋ CSS ๋ทฐํฌํธ ๊ท์น์ ๋ํ ๋นํ์ ์ธ ์ดํด์ ๊ตฌํ์ด ์์ต๋๋ค. ์ด ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฐ์ํ ์น ๋์์ธ์ ์ด์ ์ญํ ์ ํ๋ฉฐ ๋ชจ๋ฐ์ผ ์ฅ์น์์ ์น ์ฝํ ์ธ ๊ฐ ๋ ๋๋ง๋๊ณ ํ์ฅ๋๋ ๋ฐฉ์์ ๊ฒฐ์ ํฉ๋๋ค.
์ ์ ํ ๋ทฐํฌํธ ์ ์ด ์์ด๋ ์น์ฌ์ดํธ๊ฐ ๋ชจ๋ฐ์ผ ํ๋ฉด์์ ๋งค์ฐ ์๊ฑฐ๋ ์ฝ๊ธฐ ์ด๋ ต๊ฑฐ๋ ํ์ํ๊ธฐ ์ด๋ ค์ ๋์ ์ดํ๋ฅ ๊ณผ ์ฌ์ฉ์ ๊ฒฝํ ์ ํ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ๋์ฟ, ๋ฒ ๋ฅผ๋ฆฐ, ์ํ์ธ๋ฃจ์ ์๋ ๊ณ ๊ฐ์ด ํด๋น ํด๋๊ธฐ๊ธฐ์ ๋ง๊ฒ ์ต์ ํ๋์ง ์์ ์น์ฌ์ดํธ ๋๋ฌธ์ ์ ํ ์ด๋ฏธ์ง๋ฅผ ๋ณด๊ฑฐ๋ ๊ฑฐ๋๋ฅผ ์๋ฃํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช๋ ๊ธ๋ก๋ฒ ์ ์ ์๊ฑฐ๋ ํ๋ซํผ์ ์์ํด ๋ณด์ญ์์ค. ์ด๋ฌํ ์๋๋ฆฌ์ค๋ ๋ชจ๋ฐ์ผ ๋ทฐํฌํธ ์ ์ด๋ฅผ ๋ง์คํฐํ๋ ๊ฒ์ ์ค์์ฑ์ ๊ฐ์กฐํฉ๋๋ค. ์ด ํฌ๊ด์ ์ธ ๊ฐ์ด๋์์๋ CSS ๋ทฐํฌํธ ๊ท์น์ ๋ฉ์ปค๋์ฆ์ ๊น์ด ํ๊ณ ๋ค์ด, ์์ฑ, ์ค์ ์ ์ฉ ์ฌ๋ก, ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ํ๊ตฌํ์ฌ ์ง์ ์ผ๋ก ๊ฐ๋ ฅํ๊ณ ์ ์ญ์ ์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์๋๋ก ์ง์ํ ๊ฒ์ ๋๋ค.
๋ทฐํฌํธ ์ดํดํ๊ธฐ: ๋ชจ๋ฐ์ผ ์น์ ์บ๋ฒ์ค
๋ทฐํฌํธ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ ์ดํ๊ธฐ ์ ์ ๊ทธ๊ฒ์ด ์ค์ ๋ก ๋ฌด์์ ๋ํ๋ด๋์ง ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ฐ์คํฌํฑ ์ปดํจํฐ์์๋ ๋ทฐํฌํธ๊ฐ ์ผ๋ฐ์ ์ผ๋ก ๊ฐ๋จํฉ๋๋ค. ์ฆ, ๋ธ๋ผ์ฐ์ ์ฐฝ ์์ฒด์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ฐ์ผ ํ๊ฒฝ์ ์ ํต์ ์ธ ๋ชจ๋ํฐ์ ๋น๊ตํ์ฌ ๋ฌผ๋ฆฌ์ ํ๋ฉด ํฌ๊ธฐ ๋ฐ ํด์๋์ ์๋นํ ์ฐจ์ด๋ก ์ธํด ๋ณต์กํ ๊ณ์ธต์ ๋์ ํฉ๋๋ค.
๋ทฐํฌํธ๋ ๋ฌด์์ธ๊ฐ?
๊ฐ๋ ์ ์ผ๋ก ๋ทฐํฌํธ๋ ์ฅ์น ํ๋ฉด์์ ์น ํ์ด์ง์ ๋ณด์ด๋ ์์ญ์ ๋๋ค. ์ฌ์ฉ์๊ฐ ์ฝํ ์ธ ๋ฅผ ๋ณด๋ "์ฐฝ"์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ค์ ํฌ๊ธฐ ์กฐ์ ํ์ฌ ์ ์ดํ๋ ๋ฐ์คํฌํฑ ๋ธ๋ผ์ฐ์ ์ ๋ฌ๋ฆฌ, ๋ชจ๋ฐ์ผ ์ฅ์น์์๋ ๋ธ๋ผ์ฐ์ ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก "๋ฐ์คํฌํฑ๊ณผ ๊ฐ์" ํ๊ฒฝ์ ์ ๊ณตํ๋ ค๊ณ ์๋ํ๋ฉฐ, ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ญํจ๊ณผ๋ฅผ ๋ผ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ดํดํ๊ธฐ ์ํด ๋ ๊ฐ์ง ์ค์ํ ๋ทฐํฌํธ ์ ํ์ธ ๋ ์ด์์ ๋ทฐํฌํธ์ ์๊ฐ ๋ทฐํฌํธ๋ฅผ ๊ตฌ๋ณํด์ผ ํฉ๋๋ค.
๋ ์ด์์ ๋ทฐํฌํธ ๋ ์๊ฐ ๋ทฐํฌํธ
๋ ํฐ ๋ฐ์คํฌํฑ ํ๋ฉด์ ์ํด ๋์์ธ๋ ์น ์ฌ์ดํธ๋ฅผ ์์ฉํ๊ธฐ ์ํด ์ด๊ธฐ ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ๋ "๋ ์ด์์ ๋ทฐํฌํธ"( "๋ฌธ์ ๋ทฐํฌํธ" ๋๋ "๊ฐ์ ๋ทฐํฌํธ"๋ผ๊ณ ๋ ํจ)์ ๊ฐ๋ ์ ๋์ ํ์ต๋๋ค.
- ๋ ์ด์์ ๋ทฐํฌํธ: ์ด๊ฒ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ ์ฒด ์น ํ์ด์ง๋ฅผ ๋ ๋๋งํ๋ ํ๋ฉด ๋ฐ์ ๋ ํฐ ์บ๋ฒ์ค์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง์ ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ๋ ์ฅ์น์ ์ค์ ๋ฌผ๋ฆฌ์ ํ๋ฉด ๋๋น์ ๊ด๊ณ์์ด ์ด ๋ ์ด์์ ๋ทฐํฌํธ๋ฅผ 980px ๋๋ 1024px ๋๋น๋ก ์ค์ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ธ๋ผ์ฐ์ ๋ ๋ง์น ๋ฐ์คํฌํฑ์์์ฒ๋ผ ํ์ด์ง๋ฅผ ๋ ๋๋งํ ๋ค์ ๋ ์์ ๋ฌผ๋ฆฌ์ ํ๋ฉด์ ๋ง๊ฒ ์ถ์ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฝํ ์ธ ๊ฐ ๊นจ์ง์ง ์์ง๋ง ํ ์คํธ๊ฐ ์ฝ์ ์ ์์ ์ ๋๋ก ์๊ฑฐ๋ ๋ํํ ์์๊ฐ ๋งค์ฐ ์๊ฒ ํ์๋์ด ์ฌ์ฉ์๊ฐ ํ์น ์ค ๋ฐ ๊ฐ๋ก ์คํฌ๋กค์ ํ๋๋ก ๊ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
- ์๊ฐ ๋ทฐํฌํธ: ์ด๊ฒ์ ๋ ์ด์์ ๋ทฐํฌํธ์ ์ค์ ๋ณด์ด๋ ๋ถ๋ถ์ ๋๋ค. ์ฅ์น ํ๋ฉด์์ ์ฌ์ฉ์์๊ฒ ํ์ฌ ๋ณด์ด๋ ์ง์ฌ๊ฐํ ์์ญ์ ๋ํ๋ ๋๋ค. ์ฌ์ฉ์๊ฐ ๋ชจ๋ฐ์ผ ํ์ด์ง๋ฅผ ํ๋ํ๋ฉด ๋ ์ด์์ ๋ทฐํฌํธ๋ ๋์ผํ ํฌ๊ธฐ๋ฅผ ์ ์งํ์ง๋ง ์๊ฐ ๋ทฐํฌํธ๋ ์ถ์๋์ด ๋ ์ด์์ ๋ทฐํฌํธ์ ๋ ์์ ๋ถ๋ถ์ ์ง์คํฉ๋๋ค. ํ์น ์ค์ ์ถ์ํ๋ฉด ์๊ฐ ๋ทฐํฌํธ๊ฐ ํ์ฅ๋์ด ๋ ์ด์์ ๋ทฐํฌํธ(๋๋ ์ต๋ ์ค ์์ค)์ ์ผ์นํฉ๋๋ค. ์ฌ๊ธฐ์ ํต์ฌ์ width: 100%์ ๊ฐ์ CSS ๋๋น ๋ฐ ๋ฏธ๋์ด ์ฟผ๋ฆฌ๊ฐ ์๊ฐ ๋ทฐํฌํธ๊ฐ ์๋ ๋ ์ด์์ ๋ทฐํฌํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ฉํ ๋ทฐํฌํธ ํ๊ทธ๋ฅผ ํตํด ๋ช ์์ ์ผ๋ก ๊ตฌ์ฑ๋์ง ์๋ ํ.
์ด ๋ ๋ทฐํฌํธ ๊ฐ์ ๋ถ์ผ์น๋ ์ ํํ ๋ฉํ ๋ทฐํฌํธ ํ๊ทธ๊ฐ ํด๊ฒฐํ๋ ค๊ณ ํ๋ ๊ฒ์ด๋ฉฐ, ๊ฐ๋ฐ์๋ ๋ ์ด์์ ๋ทฐํฌํธ๋ฅผ ์ฅ์น์ ์ค์ ๋๋น์ ์ผ์น์์ผ ์ง์ ํ ๋ฐ์ํ ๋์์ธ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
๋ฉํ ๋ทฐํฌํธ ํ๊ทธ์ ์ญํ
๋ฌธ์์ ์น์ ์ ๋ฐฐ์น๋๋ HTML ํ๊ทธ๋ ๋ชจ๋ฐ์ผ ์ฅ์น์์ ๋ทฐํฌํธ์ ๋์์ ์ ์ดํ๋ ์ฃผ์ ๋ฉ์ปค๋์ฆ์ ๋๋ค. ๋ธ๋ผ์ฐ์ ์ ๋ ์ด์์ ๋ทฐํฌํธ๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ง์ํ๊ณ ํ์ด์ง๋ฅผ ํ์ฅํ๊ณ ๋ ๋๋งํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง์นจ์ ์ ๊ณตํฉ๋๋ค. ์ด ๋จ์ผ ์ฝ๋ ์ค์ ๋ฐ์ํ ๋ชจ๋ฐ์ผ ๊ฒฝํ์ ๋ณด์ฅํ๋ ๋ฐ ๊ฐ์ฅ ์ค์ํ ๊ตฌ์ฑ ์์๋ผ๊ณ ํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ด๊ณ ๊ถ์ฅ๋๋ ๋ฉํ ๋ทฐํฌํธ ํ๊ทธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด ์ค์ํ ๋ฉํ ํ๊ทธ ๋ด์ ํ์ ์์ฑ์ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ฉํ ๋ทฐํฌํธ ํ๊ทธ์ ์ฃผ์ ์์ฑ
๋ฉํ ๋ทฐํฌํธ ํ๊ทธ์ content ์์ฑ์ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ชจ๋ฐ์ผ ํ๋ฉด์์ ์น ํ์ด์ง๋ฅผ ํด์ํ๊ณ ํ์ํ๋ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํ๋ ์์ฑ์ ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ชฉ๋ก์ ์๋ฝํฉ๋๋ค. ๊ฐ ์์ฑ์ ์ดํดํ๋ ๊ฒ์ ๋ชจ๋ฐ์ผ ํ๋ ์ ํ ์ด์ ์ ์ธ๋ฐํ๊ฒ ์กฐ์ ํ๋ ๋ฐ ํ์์ ์ ๋๋ค.
width
width ์์ฑ์ ๋ ์ด์์ ๋ทฐํฌํธ์ ํฌ๊ธฐ๋ฅผ ์ ์ดํฉ๋๋ค. ๋ฐ์ํ ๋์์ธ์์ ๊ฐ์ฅ ์ค์ํ ์์ฑ์ ๋๋ค.
width=device-width
: ์ด๊ฒ์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๊ณ ๊ฐ๋ ฅํ ๊ถ์ฅ๋๋ ๊ฐ์ ๋๋ค. ๋ธ๋ผ์ฐ์ ์ ๋ ์ด์์ ๋ทฐํฌํธ ๋๋น๋ฅผ ์ฅ์น ๋ ๋ฆฝ ํฝ์ (DIP) ๋จ์์ ์ฅ์น ๋๋น๋ก ์ค์ ํ๋๋ก ์ง์ํฉ๋๋ค. ์ฆ, ๋ฌผ๋ฆฌ์ ํ๋ฉด ๋๋น๊ฐ 360px์ธ ์ฅ์น(์ค์ ํฝ์ ํด์๋๊ฐ ํจ์ฌ ๋๋๋ผ๋ DIP ๋จ์)๋ 360px์ ๋ ์ด์์ ๋ทฐํฌํธ๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด CSS ํฝ์ ๊ฐ์ด ์ฅ์น์ ํจ๊ณผ์ ์ธ ๋๋น์ ์ง์ ์ ๋ ฌ๋์ด min-width ๋๋ max-width๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ CSS ๋ฏธ๋์ด ์ฟผ๋ฆฌ๊ฐ ์ฅ์น ํฌ๊ธฐ์ ์๋์ ์ผ๋ก ์๋ํ ๋๋ก ์๋ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, @media (max-width: 768px) { ... }๊ฐ ์๋ ๊ฒฝ์ฐ ์ด ์ฟผ๋ฆฌ๋ device-width๊ฐ 768px ์ดํ์ธ ์ฅ์น์์ ํธ๋ฆฌ๊ฑฐ๋์ด ํ๋ธ๋ฆฟ ๋๋ ๋ชจ๋ฐ์ผ ์คํ์ผ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ฉ๋๋๋ก ํฉ๋๋ค.width=[value]
: ํน์ ํฝ์ ๊ฐ(์: width=980)์ ์ค์ ํ ์๋ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ด์ ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ ๋์๊ณผ ์ ์ฌํ ๊ณ ์ ๋๋น ๋ ์ด์์ ๋ทฐํฌํธ๊ฐ ์์ฑ๋ฉ๋๋ค. ๋ฐ์ํ์ผ๋ก ์ค๊ณ๋์ง ์์ ๋ ๊ฑฐ์ ์ฌ์ดํธ์๋ ์ ์ฉํ ์ ์์ง๋ง ๋ฐ์ํ ๋์์ธ์ ์ด์ ์ ๋ฌดํจํํ๋ฉฐ, ์์ ํ๋ฉด์์ ๊ฐ๋ก ์คํฌ๋กค ๋๋ ๊ทน์ฌํ ํ์ฅ์ ์ ๋ฐํ ๊ฐ๋ฅ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ ์ต์ ์น ๊ฐ๋ฐ์๋ ์ผ๋ฐ์ ์ผ๋ก ๊ถ์ฅ๋์ง ์์ต๋๋ค.
initial-scale
initial-scale ์์ฑ์ ํ์ด์ง๊ฐ ์ฒ์ ๋ก๋๋ ๋์ ์ค ์์ค์ ์ ์ดํฉ๋๋ค. ๋ ์ด์์ ๋ทฐํฌํธ ๋๋น์ ์๊ฐ ๋ทฐํฌํธ ๋๋น ๊ฐ์ ๋น์จ์ ์ง์ ํฉ๋๋ค.
initial-scale=1.0
: ์ด๊ฒ์ ํ์ค์ด๋ฉฐ ๊ถ์ฅ๋๋ ๊ฐ์ ๋๋ค. ํ์ด์ง ๋ก๋ ์ ์๊ฐ ๋ทฐํฌํธ๊ฐ ๋ ์ด์์ ๋ทฐํฌํธ์ 1:1 ๋น์จ์ ๊ฐ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. width=device-width๋ ์ค์ ๋ ๊ฒฝ์ฐ ์ด๋ 1 CSS ํฝ์ ์ด 1 ์ฅ์น ๋ ๋ฆฝ ํฝ์ ๊ณผ ๋์ผํ๋๋ก ํ์ฌ ๋ฐ์ํ ๋ ์ด์์์ ๋ฐฉํดํ ์ ์๋ ์ด๊ธฐ ํ๋ ๋๋ ์ถ์๋ฅผ ๋ฐฉ์งํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ชจ๋ฐ์ผ ์ฅ์น์ 360px์ ์ฅ์น ๋๋น๊ฐ ์๋ ๊ฒฝ์ฐ initial-scale=1.0์ผ๋ก ์ค์ ํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๊ธฐ ํ์ฅ ์์ด ์๊ฐ ๋ทฐํฌํธ์ ์ ํํ 360 CSS ํฝ์ ์ด ๋ง๋๋ก ํ์ด์ง๋ฅผ ๋ ๋๋งํฉ๋๋ค.initial-scale=[value]
: 1.0๋ณด๋ค ํฐ ๊ฐ(์: initial-scale=2.0)์ ์ฒ์์ ํ๋๋์ด ์ฝํ ์ธ ๊ฐ ๋ ์ปค ๋ณด์ด๊ฒ ํฉ๋๋ค. 1.0๋ณด๋ค ์์ ๊ฐ(์: initial-scale=0.5)์ ์ฒ์์ ์ถ์๋์ด ์ฝํ ์ธ ๊ฐ ๋ ์๊ฒ ๋ณด์ด๊ฒ ํฉ๋๋ค. ์ฒ์๋ถํฐ ์ผ๊ด๋์ง ์์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๋ฐํ ์ ์์ผ๋ฏ๋ก ํ์ค ๋ฐ์ํ ๋์์ธ์๋ ๊ฑฐ์ ์ฌ์ฉ๋์ง ์์ต๋๋ค.
minimum-scale
๋ฐ maximum-scale
์ด๋ฌํ ์์ฑ์ ํ์ด์ง๊ฐ ๋ก๋๋ ํ ์ฌ์ฉ์๊ฐ ํ์ด์ง์ ์ ์ฉํ ์ ์๋ ์ต์ ๋ฐ ์ต๋ ์ค ์์ค์ ์ ์ํฉ๋๋ค.
minimum-scale=[value]
: ํ์ฉ๋๋ ๊ฐ์ฅ ๋ฎ์ ์ค ์์ค์ ์ค์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, minimum-scale=0.5๋ ์ฌ์ฉ์๊ฐ ์ด๊ธฐ ํฌ๊ธฐ์ ์ ๋ฐ์ผ๋ก ์ถ์ํ ์ ์๋๋ก ํฉ๋๋ค.maximum-scale=[value]
: ํ์ฉ๋๋ ๊ฐ์ฅ ๋์ ์ค ์์ค์ ์ค์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, maximum-scale=2.0์ ์ฌ์ฉ์๊ฐ ์ด๊ธฐ ํฌ๊ธฐ์ ๋ ๋ฐฐ๋ก ํ๋ํ ์ ์๋๋ก ํฉ๋๋ค.
์ด๋ฌํ ๊ธฐ๋ฅ์ ์ ์ด๋ฅผ ์ ๊ณตํ์ง๋ง, ํนํ maximum-scale=1.0๊ณผ ๊ฐ์ด ์ ํ์ ์ธ ์ต์ ๋๋ ์ต๋ ํ์ฅ์ ์ค์ ํ๋ ๊ฒ์ ์ ๊ทผ์ฑ์ ํด๋ก์ธ ์ ์์ต๋๋ค. ์๊ฐ ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์๋ ์ฝํ ์ธ ๋ฅผ ์ฝ๊ธฐ ์ํด ํ์น ํฌ ์ค์ ์์กดํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ๋ฐฉ์งํ๋ฉด ์๋นํ ๊ธ๋ก๋ฒ ์ฌ์ฉ์์ ๊ฒฝ์ฐ ์ฌ์ดํธ๊ฐ ์ฌ์ฉํ ์ ์๊ฒ ๋ ์ ์์ต๋๋ค. ์ฌ์ฉ์ ๊ฒฝํ ๋๋ ๋ณด์์์ ์ด์ ๋ก ๋งค์ฐ ๊ตฌ์ฒด์ ์ด๊ณ ์ค๋๋ ฅ ์๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด ์ฌ์ฉ์ ํ์ฅ์ฑ์ ์ ํํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด ๊ฒฝ์ฐ์๋ ์ ๊ทผ์ฑ ์ง์นจ์ ์ ์คํ๊ฒ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
user-scalable
user-scalable ์์ฑ์ ์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ํ๋ํ๊ฑฐ๋ ์ถ์ํ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ์ง์ ์ ์ดํฉ๋๋ค.
user-scalable=yes
(๋๋user-scalable=1
): ์ฌ์ฉ์๊ฐ ํ๋/์ถ์ํ ์ ์๋๋ก ํ์ฉํฉ๋๋ค. ์์ฑ์ด ์๋ต๋ ๊ฒฝ์ฐ ์ด๋ ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ ๋์์ด๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ์ ๊ทผ์ฑ์ ์ํด ๊ถ์ฅ๋ฉ๋๋ค.user-scalable=no
(๋๋user-scalable=0
): ์ฌ์ฉ์๊ฐ ํ๋/์ถ์ํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. ์ด ์ค์ ์ ์ข ์ข maximum-scale=1.0๊ณผ ํจ๊ป ์ฌ์ฉ๋์ด ์ ๊ทผ์ฑ์ ์ฌ๊ฐํ๊ฒ ์ ํดํ ์ ์์ต๋๋ค. ์๊ฐ ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์๋ ๋ ํฐ ํ ์คํธ ํฌ๊ธฐ ๋๋ ํ๋๋ ์ฝํ ์ธ ๊ฐ ํ์ํ ์ ์์ต๋๋ค. ํ๋/์ถ์๋ก ์ธํ ๋ ์ด์์ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ ์๋ ์์ง๋ง ์ ๊ทผ์ฑ ์ํฅ์ ์๋นํ๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ์ธ์ง๋ ์ด์ ๋ณด๋ค ํฝ๋๋ค. WCAG(์น ์ฝํ ์ธ ์ ๊ทผ์ฑ ์ง์นจ)์ ๊ฐ์ด ์ฌ์ฉ์๊ฐ ์ฝํ ์ธ ํ์ฅ์ ์ ์ดํ๋ ๊ฒ์ ์ง์ํ๋ ์ ์ญ ์ ๊ทผ์ฑ ํ์ค์ ์ค์ํ๋ฉด์ ๋๋ถ๋ถ์ ํ๋ก๋์ ํ๊ฒฝ์์๋ ์ด ์ค์ ์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
height
width์ ์ ์ฌํ๊ฒ height ์์ฑ์ ๋ ์ด์์ ๋ทฐํฌํธ์ ๋์ด๋ฅผ ์ค์ ํ ์ ์๋๋ก ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ธ๋ผ์ฐ์ ํฌ๋กฌ, ๋์ ๋๊ตฌ ๋ชจ์ ๋ฐ ๋ชจ๋ฐ์ผ ์ฅ์น์ ๊ฐ์ ํค๋ณด๋ ๋ชจ์์ผ๋ก ์ธํด ๋ธ๋ผ์ฐ์ ์ ์๊ฐ ์์ญ ๋์ด๊ฐ ํฌ๊ฒ ๋ฌ๋ผ์ง ์ ์์ผ๋ฏ๋ก device-height์ ํจ๊ป ์ด ์์ฑ์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๋ ๋๋ญ ๋๋ค. ๊ณ ์ ๋์ด ๋๋ device-height์ ์์กดํ๋ฉด ์ผ๊ด๋์ง ์์ ๋ ์ด์์๊ณผ ์๊ธฐ์น ์์ ์คํฌ๋กค์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ๋๋ถ๋ถ์ ๋ฐ์ํ ๋์์ธ์ ๊ณ ์ ๋์ด ๋ทฐํฌํธ๊ฐ ์๋ ์ฝํ ์ธ ํ๋ฆ๊ณผ ์คํฌ๋กค ๊ฐ๋ฅ์ฑ์ ํตํด ์ธ๋ก ๋ ์ด์์์ ๊ด๋ฆฌํฉ๋๋ค.
๊ถ์ฅ ๋ฉํ ๋ทฐํฌํธ ํ๊ทธ ์์ฝ:
์ด ํ ์ค์ ๋ฐ์ํ ๋์์ธ์ ๋ํ ์ต์ ์ ๊ธฐ๋ฐ์ ์ ๊ณตํ๋ฉฐ, ๋ธ๋ผ์ฐ์ ์ ๋ ์ด์์ ๋ทฐํฌํธ ๋๋น๋ฅผ ์ฅ์น ๋๋น์ ์ผ์น์ํค๋๋ก ์ง์ํ๊ณ ํ์ฅ๋์ง ์์ ์ด๊ธฐ ๋ณด๊ธฐ๋ฅผ ์ค์ ํ๋ฉฐ, ๊ฒฐ์ ์ ์ผ๋ก ์ฌ์ฉ์๊ฐ ์ ๊ทผ์ฑ์ ์ํด ์์ ๋กญ๊ฒ ํ๋/์ถ์ํ ์ ์๋๋ก ํฉ๋๋ค.
๋ทฐํฌํธ ๋จ์: ๋์ ํฌ๊ธฐ ์กฐ์ ์ ์ํ ํฝ์ ๋๋จธ
ํฝ์ (px), em, rem๊ณผ ๊ฐ์ ์ ํต์ ์ธ CSS ๋จ์๋ ๊ฐ๋ ฅํ์ง๋ง ๋ทฐํฌํธ ๋จ์๋ ๋ทฐํฌํธ ์์ฒด์ ์น์์ ์๋์ ์ธ ์์ ํฌ๊ธฐ ์กฐ์ ์ ๋ํ ๊ณ ์ ํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ๋จ์๋ ๋ชจ๋ ๋น๋ก ์กฐ์ ์ ๋ํด ๋ฏธ๋์ด ์ฟผ๋ฆฌ์๋ง ์์กดํ์ง ์๊ณ ๋์ ์ด๊ณ ์ ๋์ ์ธ ๋ ์ด์์์ ๋ง๋๋ ๋ฐ ํนํ ์ ์ฉํฉ๋๋ค. ๋ ์ด์์ ๋ทฐํฌํธ ์น์์ ๋ฐฑ๋ถ์จ์ ๋ํ๋ด๋ฉฐ, ๋ณด์ด๋ ํ๋ฉด ์์ญ์ ์๋์ ์ธ ์์ ํฌ๊ธฐ์ ๋ํ ๋ณด๋ค ์ง์ ์ ์ธ ์ ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
vw
(๋ทฐํฌํธ ๋๋น)
- ์ ์: 1vw๋ ๋ ์ด์์ ๋ทฐํฌํธ ๋๋น์ 1%์ ๊ฐ์ต๋๋ค.
- ์์: ๋ ์ด์์ ๋ทฐํฌํธ๊ฐ 360px ๋๋น์ธ ๊ฒฝ์ฐ( width=device-width๊ฐ ์๋ ์ผ๋ฐ์ ์ธ ๋ชจ๋ฐ์ผ ์ฅ์น์ ๊ฐ์ด), 10vw๋ 36px(360px์ 10%)์ด ๋ฉ๋๋ค. ํ๋ธ๋ฆฟ์์ ๋ทฐํฌํธ๊ฐ 1024px๋ก ํ์ฅ๋๋ฉด 10vw๋ 102.4px์ด ๋ฉ๋๋ค.
- ์ฌ์ฉ ์ฌ๋ก: ๋ชจ๋ ์ค๋จ์ ์ ๋ํ ์ง์์ ์ธ ๋ฏธ๋์ด ์ฟผ๋ฆฌ ์กฐ์ ์์ด ๊ด๋ฒ์ํ ํ๋ฉด ํฌ๊ธฐ์ ๊ฑธ์ณ ํ ์คํธ๊ฐ ์ฝ์ ์ ์๋๋ก ๋ณด์ฅํ๋ ๊ธ๊ผด ํฌ๊ธฐ, ์ด๋ฏธ์ง ํฌ๊ธฐ ๋๋ ์ปจํ ์ด๋ ๋๋น์ ์ด์์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด, vw๋ฅผ ์ฌ์ฉํ์ฌ ๊ธ๊ผด ํฌ๊ธฐ๋ฅผ ์ค์ ํ๋ฉด ๋ทฐํฌํธ ๋๋น์ ๋ฐ๋ผ ๊ธ๊ผด ํฌ๊ธฐ๊ฐ ์๋ฆ๋ต๊ฒ ์กฐ์ ๋๋ฉด์๋ ์ฝ๊ธฐ ์ฝ๊ฒ ์ ์งํ ์ ์์ต๋๋ค.
- ์ฝ๋ ์์:
h1 { font-size: 8vw; }
.hero-image { width: 100vw; height: auto; }
vh
(๋ทฐํฌํธ ๋์ด)
- ์ ์: 1vh๋ ๋ ์ด์์ ๋ทฐํฌํธ ๋์ด์ 1%์ ๊ฐ์ต๋๋ค.
- ์์: ๋ ์ด์์ ๋ทฐํฌํธ๊ฐ 640px ๋์ด์ธ ๊ฒฝ์ฐ 50vh๋ 320px(640px์ 50%)์ด ๋ฉ๋๋ค.
- ์ฌ์ฉ ์ฌ๋ก: ์ ์ฒด ํ๋ฉด ์น์ , ํ์ด๋ก ๋ฐฐ๋ ๋๋ ๋ณด์ด๋ ํ๋ฉด ๋์ด์ ํน์ ๋ฐฑ๋ถ์จ์ ์ฐจ์งํด์ผ ํ๋ ์์๋ฅผ ๋ง๋๋ ๋ฐ ์ ํฉํฉ๋๋ค. ์ผ๋ฐ์ ์ธ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฅ์น ๋ฐฉํฅ์ด๋ ํฌ๊ธฐ์ ๊ด๊ณ์์ด ํญ์ ํ๋ฉด์ ์ฑ์ฐ๋ ํ์ด๋ก ์น์ ์ ๋ง๋๋ ๊ฒ์ ๋๋ค.
- ์ฝ๋ ์์:
.full-screen-section { height: 100vh; }
vmin
(๋ทฐํฌํธ ์ต์) ๋ฐ vmax
(๋ทฐํฌํธ ์ต๋)
์ด๋ฌํ ๋จ์๋ ๋ ์ผ๋ฐ์ ์ด์ง๋ง ๋ทฐํฌํธ์ ๋ ์์ ๋๋ ๋ ํฐ ์น์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์์ฑ์ ๋ณด์ฅํ๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
vmin
์ ์: 1vmin์ ๋ ์ด์์ ๋ทฐํฌํธ์ ๋ ์์ ์น์(๋๋น ๋๋ ๋์ด)์ 1%์ ๊ฐ์ต๋๋ค.vmin
์์: ๋ทฐํฌํธ๊ฐ ๋๋น 360px์ด๊ณ ๋์ด 640px์ธ ๊ฒฝ์ฐ 1vmin์ 3.6px(360px์ 1%)์ด ๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ฅ์น๋ฅผ ๊ฐ๋ก ๋ชจ๋(์: ๋๋น 640px, ๋์ด 360px)๋ก ํ์ ํ๋ฉด 1vmin์ ์ฌ์ ํ 3.6px(360px์ 1%)์ด ๋ฉ๋๋ค.vmin
์ฌ์ฉ ์ฌ๋ก: ๋๋น ๋๋ ๋์ด ์น์ ์ค ๋ ์ ํ์ ์ธ ์น์์ ์๋์ ์ผ๋ก ๋๋ฌด ์ปค์ง์ง ์๊ณ ๋๋ฌด ์์์ง์ง๋ ์๋ ์์๋ฅผ ์กฐ์ ํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค. ์ด๋ฅผ ํตํด ํนํ ์ ์ฌ๊ฐํ ์์๋ ์ธ๋ก ๋ฐ ๊ฐ๋ก ๋ชจ๋ ๋ชจ๋์ ์ ์ ํ๊ฒ ๋ง๋ ์์ด์ฝ์ ์ฒ๋ฆฌํ ๋ ์น์ ์ค ๋ ์ ํ์ ์ธ ์น์์ ์๋์ ์ผ๋ก ์์๋ฅผ ํ์ฅํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.- ์ฝ๋ ์์:
.square-icon { width: 10vmin; height: 10vmin; }
vmax
์ ์: 1vmax๋ ๋ ์ด์์ ๋ทฐํฌํธ์ ๋ ํฐ ์น์(๋๋น ๋๋ ๋์ด)์ 1%์ ๊ฐ์ต๋๋ค.vmax
์์: ๋ทฐํฌํธ๊ฐ ๋๋น 360px์ด๊ณ ๋์ด 640px์ธ ๊ฒฝ์ฐ 1vmax๋ 6.4px(640px์ 1%)์ด ๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ฅ์น๋ฅผ ๊ฐ๋ก ๋ชจ๋(์: ๋๋น 640px, ๋์ด 360px)๋ก ํ์ ํ๋ฉด 1vmax๋ ์ฌ์ ํ 6.4px(640px์ 1%)์ด ๋ฉ๋๋ค.vmax
์ฌ์ฉ ์ฌ๋ก: ํญ์ ํ์๋๊ณ ํ๋ฉด์ ๊ฐ์ฅ ํฐ ์น์์ ํจ๊ป ์ฑ์ฅํ์ฌ ์ฝ๊ฑฐ๋ ์ํธ ์์ฉํ๊ธฐ์ ๋๋ฌด ์์์ง์ง ์๋๋ก ํด์ผ ํ๋ ์์์ ์ด์์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ํฐ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ๋๋ ํ๋ฉด์ ์๋นํ ๋ถ๋ถ์ ํญ์ ์ฐจ์งํด์ผ ํ๋ ์ค์ํ ํ ์คํธ ๋ธ๋ก์ ๋๋ค.- ์ฝ๋ ์์:
.background-text { font-size: 5vmax; }
๋ทฐํฌํธ ๋จ์์ ์ค์ ์ ์ฉ ๋ฐ ๊ณ ๋ ค ์ฌํญ
๋ทฐํฌํธ ๋จ์๋ ๊ฐ๋ ฅํ์ง๋ง ์ ์คํ ๊ตฌํ์ด ํ์ํฉ๋๋ค.
- ํ์ดํฌ๊ทธ๋ํผ: vw์ rem ๋๋ em ๋จ์๋ฅผ ๊ฒฐํฉํ๋ฉด ( calc() ์ฌ์ฉ) ๋ทฐํฌํธ ๋๋น์ ๋ฐ๋ผ ์ฝ๊ฐ ์กฐ์ ๋์ง๋ง ๊ฐ๋ ฅํ ๊ธฐ์ค์ ์ ์ ๊ณตํ๋ ์ ๋์ ์ธ ํ์ดํฌ๊ทธ๋ํผ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, font-size: calc(1rem + 0.5vw);๋ฅผ ์ค์ ํ๋ฉด ๊ธ๊ผด ํฌ๊ธฐ๊ฐ ๋ทฐํฌํธ ๋๋น์ ๋ฐ๋ผ ์ฝ๊ฐ ์กฐ์ ๋๋ฉด์๋ ๊ฐ๋ ฅํ ๊ธฐ์ค์ ์ ์ ๊ณตํฉ๋๋ค.
- ๋ ์ด์์: ์ธก๋ฉด ๋ฐ ๋๋ ์ ๋ ๊ฒฉ์์ ์ฝํ ์ธ ์ด๊ณผ ๊ฐ์ด ํ๋ฉด์ ํน์ ๋ถ๋ถ์ ์์ด์ผ ํ๋ ์์์ ๊ฒฝ์ฐ ๋ทฐํฌํธ ๋จ์๊ฐ ์ง์ ์ ์ธ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค.
- ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ : max-width: 100%๋ ๋ฐ์ํ ์ด๋ฏธ์ง์ ํ์ค์ด์ง๋ง, ํน์ ๋์์ธ ์์์ ๋ทฐํฌํธ ๋๋น์ ๋ฐฑ๋ถ์จ์ ์ ํํ๊ฒ ์ฑ์์ผ ํ๋ ๊ฒฝ์ฐ vw๋ฅผ ์ด๋ฏธ์ง ์น์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ์ฉํ ์ ์์ต๋๋ค.
- ๋ธ๋ผ์ฐ์ ํธํ์ฑ: ๋ทฐํฌํธ ๋จ์๋ ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ๋ฅผ ํฌํจํ ๋๋ถ๋ถ์ ์ต์ ๋ธ๋ผ์ฐ์ ์์ ๋๋ฆฌ ์ง์๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ํนํ ๋ชจ๋ฐ์ผ์ vh ๋จ์์ ๊ด๋ จํ์ฌ ํน์ ๋ธ๋ผ์ฐ์ ์ ํน์ด์ ์ ์ฃผ์ํ์ญ์์ค. ์ด๋ ๋์ค ์น์ ์์ ์ค๋ช ๋ฉ๋๋ค.
- ๊ณผ๋ํ ํ์ฅ: ๋ทฐํฌํธ ๋จ์๋ฅผ ๋งค์ฐ ์๊ฑฐ๋ ๋งค์ฐ ํฐ ์์์ ์ฌ์ฉํ ๋๋ ์ฃผ์ํ์ญ์์ค. 1vw์ ๊ธ๊ผด ํฌ๊ธฐ๋ ๋งค์ฐ ์์ ํด๋ํฐ์์ ์ฝ์ ์ ์์ ์ ๋๋ก ์์์ง ์ ์๊ณ , 50vw๋ ๋์ ๋ฐ์คํฌํฑ ๋ชจ๋ํฐ์์ ์ง๋์น๊ฒ ์ปค์ง ์ ์์ต๋๋ค. min() ๋ฐ max() CSS ํจ์์ ๊ฒฐํฉํ๋ฉด ๋ฒ์๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
๋ฐ์ํ ๋์์ธ ๋ฐ ๋ทฐํฌํธ ์ ์ด: ๊ฐ๋ ฅํ ๋๋งน
๋ฉํ ๋ทฐํฌํธ ํ๊ทธ๋ฅผ ํตํ ๋ทฐํฌํธ ์ ์ด๋ ํ๋ ๋ฐ์ํ ์น ๋์์ธ์ ๊ธฐ๋ฐ์ ๋๋ค. ๊ทธ๊ฒ ์์ด๋ CSS ๋ฏธ๋์ด ์ฟผ๋ฆฌ๊ฐ ๋ชจ๋ฐ์ผ ์ฅ์น์์ ๋๋ถ๋ถ ๋นํจ๊ณผ์ ์ผ ๊ฒ์ ๋๋ค. ์ด ๋ ๊ธฐ์ ์ด ์กฐํ๋กญ๊ฒ ์๋ํ์ฌ ์น ์ฌ์ดํธ๊ฐ ์ ์ธ๊ณ์ ๋ชจ๋ ํ๋ฉด ํฌ๊ธฐ, ๋ฐฉํฅ ๋ฐ ํด์๋์ ์ฐ์ํ๊ฒ ์ ์ํ ์ ์๋๋ก ํ ๋ ์ง์ ํ ํ์ด ๋ํ๋ฉ๋๋ค.
CSS ๋ฏธ๋์ด ์ฟผ๋ฆฌ์์ ์๋์ง
CSS ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ฉด ๋๋น, ๋์ด, ๋ฐฉํฅ ๋ฐ ํด์๋์ ๊ฐ์ ๋ค์ํ ์ฅ์น ํน์ฑ์ ๋ฐ๋ผ ๋ค๋ฅธ ์คํ์ผ์ ์ ์ฉํ ์ ์์ต๋๋ค. ๊ณผ ๊ฒฐํฉํ๋ฉด ๋ฏธ๋์ด ์ฟผ๋ฆฌ๊ฐ ๋งค์ฐ ์ ํํ๊ณ ์์ ์ ์ผ๋ก ๋ฉ๋๋ค.
- ์๋ ๋ฐฉ์:
- ๋ฉํ ๋ทฐํฌํธ ํ๊ทธ๋ width=device-width๊ฐ ๋ ์ด์์ ๋ทฐํฌํธ๋ฅผ CSS ํฝ์ ์ ์ฅ์น ์ค์ ๋๋น๋ก ์ ํํ๊ฒ ์ค์ ํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ ์ด ์ ํํ ๋ ์ด์์ ๋ทฐํฌํธ ๋๋น๋ฅผ ์ฌ์ฉํ์ฌ ์คํ์ผ์ ์ ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, @media (max-width: 600px) { ... }์ ๊ฐ์ ์ฟผ๋ฆฌ๋ ๊ธฐ๋ณธ "๋ฐ์คํฌํฑ๊ณผ ๊ฐ์" ๋ ์ด์์ ๋ทฐํฌํธ ์ค์ ์ ๊ด๊ณ์์ด ์ ํจ ๋๋น๊ฐ 600px ์ดํ์ธ ์ฅ์น๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋์์ผ๋ก ํฉ๋๋ค.
- ์ผ๋ฐ์ ์ธ ์ค๋จ์ (๊ธ๋ก๋ฒ ๊ด์ ): ํน์ ์ค๋จ์ ๊ฐ์ ์ฝํ
์ธ ๋ฐ ๋์์ธ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ง๋ง, ์ผ๋ฐ์ ์ธ ์ ๋ต์ ์ผ๋ฐ์ ์ธ ์ฅ์น ๋ฒ์ฃผ๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒ์
๋๋ค.
- ์ํ ๋ชจ๋ฐ์ผ: @media (max-width: 375px) { ... } (๋งค์ฐ ์์ ํด๋ํฐ ํ๊ฒํ )
- ๋ชจ๋ฐ์ผ: @media (max-width: 767px) { ... } (์ผ๋ฐ ์ค๋งํธํฐ, ์ธ๋ก ๋ชจ๋)
- ํ๋ธ๋ฆฟ: @media (min-width: 768px) and (max-width: 1023px) { ... } (ํ๋ธ๋ฆฟ, ์ํ ๋ ธํธ๋ถ)
- ๋ฐ์คํฌํฑ: @media (min-width: 1024px) { ... } (๋ ํฐ ํ๋ฉด)
- ๋ฏธ๋์ด ์ฟผ๋ฆฌ ์ฝ๋ ์์:
/* ๋ ํฐ ํ๋ฉด์ ๋ํ ๊ธฐ๋ณธ ์คํ์ผ */
body { font-size: 18px; }
.container { max-width: 1200px; margin: 0 auto; }
/* ์ต๋ 767px ๋๋น ํ๋ฉด์ ๋ํ ์คํ์ผ (์: ๋๋ถ๋ถ์ ์ค๋งํธํฐ) */
@media (max-width: 767px) {
body { font-size: 16px; }
.container { width: 95%; padding: 0 10px; }
.navigation { flex-direction: column; }
}
๋ชจ๋ฐ์ผ ์ฐ์ ๊ฐ๋ฐ ์ ๋ต
"๋ชจ๋ฐ์ผ ์ฐ์ " ๊ฐ๋ ์ ๋ฐ์ํ ์น ๋์์ธ์์ ๊ฐ๋ ฅํ ํจ๋ฌ๋ค์์ผ๋ก, ๋ทฐํฌํธ ์ ์ด๋ฅผ ์ง์ ์ ์ผ๋ก ํ์ฉํฉ๋๋ค. ๋ฐ์คํฌํฑ์ ์ํด ๋์์ธํ ๋ค์ ๋ชจ๋ฐ์ผ๋ก ์กฐ์ ํ๋ ๋์ , ๋ชจ๋ฐ์ผ ์ฐ์ ์ ๊ฐ์ฅ ์์ ํ๋ฉด์ ์ํด ํต์ฌ ๊ฒฝํ์ ๊ตฌ์ถํ ๋ค์ ๋ ํฐ ๋ทฐํฌํธ์ ๋ํด ์ ์ง์ ์ผ๋ก ๊ฐ์ ํ๋ ๊ฒ์ ์นํธํฉ๋๋ค.
- ๋ชจ๋ฐ์ผ ์ฐ์ ์ด์ :
- ์ฑ๋ฅ: ๋ชจ๋ฐ์ผ ์ฌ์ฉ์(์ข ์ข ๋ ๋๋ฆฐ ๋คํธ์ํฌ์ ๋ ๊ฐ๋ ฅํ ์ฅ์น๋ฅผ ์ฌ์ฉํ๋)๋ง ํ์ ์คํ์ผ๊ณผ ์์ฐ์ ๋ฐ๋๋ก ๋ณด์ฅํ์ฌ ๋ก๋ ์๊ฐ์ ๋จ์ถํฉ๋๋ค.
- ์ฝํ ์ธ ์ฐ์ ์์ ์ง์ : ํ๋ฉด ๊ณต๊ฐ์ด ์ ํ๋์ด ์์ผ๋ฏ๋ก ๊ฐ๋ฐ์๊ฐ ์ฝํ ์ธ ์ ๊ธฐ๋ฅ์ ์ฐ์ ์์๋ฅผ ์ ํ๋๋ก ๊ฐ์ ํฉ๋๋ค.
- ์ ์ง์ ํฅ์: ํ๋ฉด์ด ์ปค์ง์ ๋ฐ๋ผ min-width ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์คํ์ผ(์: ๋ ๋ณต์กํ ๋ ์ด์์, ๋ ํฐ ์ด๋ฏธ์ง)์ "์ถ๊ฐ"ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ธฐ๋ณธ ๊ฒฝํ์ด ํญ์ ๋ชจ๋ฐ์ผ์ ์ต์ ํ๋ฉ๋๋ค.
- ๊ธ๋ก๋ฒ ์ ๊ทผ์ฑ: ๋ง์ ์ง์ญ, ํนํ ์ ํฅ ์์ฅ์ ๋ชจ๋ฐ์ผ ์ ์ฉ์ ๋๋ค. ๋ชจ๋ฐ์ผ ์ฐ์ ์ ๊ทผ ๋ฐฉ์์ ๋ณธ์ง์ ์ผ๋ก ์ ์ธ๊ณ ์ธํฐ๋ท ์ฌ์ฉ์์ ๋๋ค์๋ฅผ ์ถฉ์กฑํฉ๋๋ค.
- ๊ตฌํ:
- ๋ชจ๋ ํ๋ฉด ํฌ๊ธฐ(์ฃผ๋ก ๋ชจ๋ฐ์ผ)์ ์ ์ฉ๋๋ ๊ธฐ๋ณธ CSS๋ก ์์ํฉ๋๋ค.
- min-width ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ง์ ์ผ๋ก ๋ ํฐ ํ๋ฉด์ ๋ํ ์คํ์ผ์ ์ถ๊ฐํฉ๋๋ค.
/* ๊ธฐ๋ณธ ์คํ์ผ (๋ชจ๋ฐ์ผ ์ฐ์ ) */
.element { width: 100%; padding: 10px; }
/* ํ๋ธ๋ฆฟ ๋ฐ ๋ ํฐ ํ๋ฉด์ ๋ํด ๋ ๋์ ๋๋น ์ ์ฉ */
@media (min-width: 768px) {
.element { width: 50%; float: left; }
}
/* ๋ฐ์คํฌํฑ์ ๋ํด ๋ ๋์ ๋๋น ์ ์ฉ */
@media (min-width: 1024px) {
.element { width: 33%; }
}
๋ค์ํ ์ฅ์น ํฝ์ ๋น์จ (DPR) ์ฒ๋ฆฌ
์ต์ ๋ชจ๋ฐ์ผ ์ฅ์น, ํนํ ๊ณ ๊ธ ์ค๋งํธํฐ ๋ฐ ํ๋ธ๋ฆฟ์ ์ข ์ข ๋งค์ฐ ๋์ ํฝ์ ๋ฐ๋๋ฅผ ๊ฐ์ง๋ฉฐ, ์ด๋ 1๋ณด๋ค ํฐ ์ฅ์น ํฝ์ ๋น์จ(DPR)๋ก ์ด์ด์ง๋๋ค. DPR์ด 2๋ผ๋ ๊ฒ์ 1 CSS ํฝ์ ์ด 2๊ฐ์ ๋ฌผ๋ฆฌ์ ์ฅ์น ํฝ์ ์ ํด๋นํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ทฐํฌํธ ๋ฉํ ํ๊ทธ๋ ๋ ์ด์์ ๋ทฐํฌํธ์ ํฌ๊ธฐ๋ฅผ ์ฅ์น ๋ ๋ฆฝ ํฝ์ ์ ์๋์ ์ผ๋ก ์กฐ์ ํ์ง๋ง, ์ด๋ฏธ์ง ๋ฐ ๊ธฐํ ๋ฏธ๋์ด ์์ฐ์ ๊ณ ๋ฐ๋ DPR ํ๋ฉด(์ข ์ข "Retina" ๋์คํ๋ ์ด๋ผ๊ณ ํจ)์์ ์ ๋ช ํ๊ฒ ๋ณด์ด๋๋ก ํน๋ณํ ๊ณ ๋ ค๊ฐ ํ์ํฉ๋๋ค.
- ์ ์ค์ํ๊ฐ: DPR์ด 2์ธ ์ฅ์น์ 100px x 100px ์ด๋ฏธ์ง๋ฅผ ์ ๊ณตํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ํจ๊ณผ์ ์ผ๋ก 200 ํฝ์ ์์ญ์ ์ฑ์ฐ๋๋ก ํ์ฅํ๊ธฐ ๋๋ฌธ์ ํ๋ฆฌ๊ฒ ํ์๋ฉ๋๋ค.
- ์๋ฃจ์
:
- ๋ฐ์ํ ์ด๋ฏธ์ง (
srcset
๋ฐsizes
): HTMLํ๊ทธ์ srcset ์์ฑ์ ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ ํฝ์ ๋น์จ ๋ฐ ๋ทฐํฌํธ ํฌ๊ธฐ์ ๋ํด ์ฌ๋ฌ ์ด๋ฏธ์ง ์์ค๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ธ๋ผ์ฐ์ ๋ ๊ฐ์ฅ ์ ํฉํ ์ด๋ฏธ์ง๋ฅผ ์ ํํฉ๋๋ค.
์ด๊ฒ์ ๋ธ๋ผ์ฐ์ ์ ํ์ค ๋์คํ๋ ์ด์ ๊ฒฝ์ฐ `image-lowres.jpg`๋ฅผ, ๊ณ ๋ฐ๋ DPR ๋์คํ๋ ์ด์ ๊ฒฝ์ฐ `image-highres.jpg`๋ฅผ ์ฌ์ฉํ๋๋ก ์ง์ํฉ๋๋ค. ๋ฐ์ํ ๋๋น์ ๋ํด `sizes`์ ๊ฒฐํฉํ ์๋ ์์ต๋๋ค. - CSS ๋ฏธ๋์ด ์ฟผ๋ฆฌ (ํด์๋์ฉ): ์ด๋ฏธ์ง์๋ ๋ ์ผ๋ฐ์ ์ด์ง๋ง ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํด์๋์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ๋๋ ์คํ์ผ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { body { background-image: url('high-res-background.jpg'); } }
- SVG ๋ฐ ์์ด์ฝ ๊ธ๊ผด: ๋ฒกํฐ ๊ทธ๋ํฝ ๋ฐ ์์ด์ฝ์ ๊ฒฝ์ฐ SVG(ํ์ฅ ๊ฐ๋ฅํ ๋ฒกํฐ ๊ทธ๋ํฝ) ๋ฐ ์์ด์ฝ ๊ธ๊ผด(Font Awesome๊ณผ ๊ฐ์)์ ํด์๋์ ๋ ๋ฆฝ์ ์ด๊ณ ํ์ง ์์ค ์์ด ๋ชจ๋ DPR๋ก ์๋ฒฝํ๊ฒ ํ์ฅ๋๋ฏ๋ก ์ด์์ ์ ๋๋ค.
- ๋ฐ์ํ ์ด๋ฏธ์ง (
์ผ๋ฐ์ ์ธ ๋ทฐํฌํธ ๋ฌธ์ ๋ฐ ํด๊ฒฐ์ฑ
๋ทฐํฌํธ ์ ์ด์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์๋ ๋ถ๊ตฌํ๊ณ ๊ฐ๋ฐ์๋ ์ข ์ข ๋ชจ๋ฐ์ผ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ฐฉํดํ ์ ์๋ ํน์ ๋ฌธ์ ์ ์ง๋ฉดํฉ๋๋ค. ์ด๋ฌํ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์ ํด๊ฒฐ์ฑ ์ ์ดํดํ๋ ๊ฒ์ ์ ์ธ๊ณ๋ฅผ ์ํ ๊ฐ๋ ฅํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ์ "100vh" ๋ฌธ์
ํ๋ฐํธ์๋ ๊ฐ๋ฐ์์๊ฒ ๊ฐ์ฅ ์ง์์ ์ด๊ณ ์ข์ ์ค๋ฌ์ด ๋ฌธ์ ์ค ํ๋๋ ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ์์ 100vh ๋จ์์ ์ผ๊ด๋์ง ์์ ๋์์ ๋๋ค. 100vh๋ ์ด๋ก ์ ์ผ๋ก "๋ทฐํฌํธ ๋์ด์ 100%"๋ฅผ ์๋ฏธํ์ง๋ง, ๋ชจ๋ฐ์ผ์์๋ ๋ธ๋ผ์ฐ์ ์ ๋์ ๋๊ตฌ ๋ชจ์(์ฃผ์ ํ์์ค, ํ์ ๋ชจ์)์ด ์ข ์ข ํ๋ฉด์ ์ผ๋ถ๋ฅผ ๊ฐ๋ ค 100vh๊ฐ ์ด๋ฌํ ๋๊ตฌ ๋ชจ์์ด ์๋ ๋ทฐํฌํธ ๋์ด๋ฅผ ์ฐธ์กฐํ๊ฒ ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์คํฌ๋กคํ๋ฉด ์ด๋ฌํ ๋๊ตฌ ๋ชจ์์ด ์จ๊ฒจ์ ธ ์๊ฐ ๋ทฐํฌํธ๊ฐ ํ์ฅ๋์ง๋ง 100vh ๊ฐ์ ๋์ ์ผ๋ก ์ ๋ฐ์ดํธ๋์ง ์์ ์์๊ฐ ๋๋ฌด ํฌ๊ฑฐ๋ ์๊ธฐ์น ์์ ์คํฌ๋กค์ ์ ๋ฐํฉ๋๋ค.
- ๋ฌธ์ : ์ ์ฒด ํ๋ฉด ํ์ด๋ก ์น์ ์ height: 100vh;๋ฅผ ์ค์ ํ๋ฉด ํ์ด์ง ๋ก๋ ์ ๋์ ๋๊ตฌ ๋ชจ์์ด ์จ๊ฒจ์ ธ ์์ ๋ 100vh๊ฐ ๋์ด๋ฅผ ์ฐธ์กฐํ๋ฏ๋ก ์ด๊ธฐ์๋ ํ์๋๋๋ผ๋ ์คํฌ๋กค ํด๋ ์๋๋ก ํ์ฅ๋ ์ ์์ต๋๋ค.
- ์๋ฃจ์
:
- ์ ๋ทฐํฌํธ ๋จ์ ์ฌ์ฉ (CSS ์์
์ด์): ์ต์ CSS๋ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํน๋ณํ ๊ณ ์๋ ์๋ก์ด ๋จ์๋ฅผ ๋์
ํฉ๋๋ค.
svh
(Small Viewport Height): ๋์ ๋๊ตฌ ๋ชจ์์ด ๋ณด์ผ ๋ ๋ทฐํฌํธ ๋์ด์ 1%.lvh
(Large Viewport Height): ๋์ ๋๊ตฌ ๋ชจ์์ด ์จ๊ฒจ์ ธ ์์ ๋ ๋ทฐํฌํธ ๋์ด์ 1%.dvh
(Dynamic Viewport Height): ๋ทฐํฌํธ ๋์ด์ 1%, ๋๊ตฌ ๋ชจ์์ด ๋ํ๋๊ฑฐ๋ ์ฌ๋ผ์ง ๋ ๋์ ์ผ๋ก ์กฐ์ ๋ฉ๋๋ค.
์ด๋ฌํ ๋จ์๋ ๊ฐ์ฅ ๊ฐ๋ ฅํ๊ณ ์ฐ์ํ ์๋ฃจ์ ์ ์ ๊ณตํ์ง๋ง ๋ธ๋ผ์ฐ์ ์ง์์ ์์ง ๋ฐ์ ์ค์ ๋๋ค. ํด๋ฐฑ๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.
.hero-section { height: 100vh; /* ์ด์ ๋ธ๋ผ์ฐ์ ์ฉ ํด๋ฐฑ */ height: 100dvh; /* ๋์ ๋ทฐํฌํธ ๋์ด ์ฌ์ฉ */ }
- JavaScript ํด๊ฒฐ ๋ฐฉ๋ฒ: ์ผ๋ฐ์ ์ด๊ณ ๋๋ฆฌ ์ง์๋๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ์ฐฝ์ ์ค์ ๋ด๋ถ ๋์ด๋ฅผ ๊ณ์ฐํ๊ณ CSS ๋ณ์ ๋๋ ์ธ๋ผ์ธ ์คํ์ผ๋ก ์ ์ฉํ๋ ๊ฒ์
๋๋ค.
// JavaScript์์:
function setDocHeight() {
document.documentElement.style.setProperty('--doc-height', `${window.innerHeight}px`);
}
window.addEventListener('resize', setDocHeight);
setDocHeight();
/* CSS์์: */
.hero-section { height: var(--doc-height); }
์ด ์ ๊ทผ ๋ฐฉ์์ ์ค์ ๋ณด์ด๋ ๋์ด์ ์ผ๊ด๋๊ฒ ์ ์ํฉ๋๋ค.
- ์ ๋ทฐํฌํธ ๋จ์ ์ฌ์ฉ (CSS ์์
์ด์): ์ต์ CSS๋ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํน๋ณํ ๊ณ ์๋ ์๋ก์ด ๋จ์๋ฅผ ๋์
ํฉ๋๋ค.
์๊ธฐ์น ์์ ํ๋/์ถ์ ๋ฌธ์
๋ฉํ ๋ทฐํฌํธ ํ๊ทธ์ initial-scale=1.0์ด ์ผ๋ฐ์ ์ผ๋ก ์ด๊ธฐ ํ๋/์ถ์๋ฅผ ๋ฐฉ์งํ์ง๋ง, ๋ค๋ฅธ ์์, ํนํ iOS ์ฅ์น์์๋ ์์น ์๋ ๋ฐฐ์จ์ ์ ๋ฐํ ์ ์์ต๋๋ค.
- iOS์์ ํฌ์ปค์ค ์ ์
๋ ฅ ํ๋ ํ๋/์ถ์: iOS์์ ์
๋ ฅ ํ๋(, , )๋ฅผ ํญํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์๋์ผ๋ก ํ๋๋์ด ์ฝํ
์ธ ๋ฅผ ์ฝ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ค๊ฑฐ๋ ๋ ์ด์์ ๋ณ๊ฒฝ์ ์ ๋ฐํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์
๋ ฅ์ด ์ํธ ์์ฉํ๊ธฐ์ ์ถฉ๋ถํ ํฌ๊ฒ ํ๋ ค๋ "์ ๊ทผ์ฑ ๊ธฐ๋ฅ"์ด์ง๋ง ๋ฐ์ํ ๋์์ธ์ ๋ฐฉํดํ ์ ์์ต๋๋ค.
- ์๋ฃจ์
: ์
๋ ฅ ํ๋์ ์ต์ 16px์ ๊ธ๊ผด ํฌ๊ธฐ๋ฅผ ์ค์ ํ๋ฉด ์ข
์ข
iOS์์ ์ด๋ฌํ ์๋ ํ๋/์ถ์ ๋์์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
input, textarea, select { font-size: 16px; }
- ์๋ฃจ์
: ์
๋ ฅ ํ๋์ ์ต์ 16px์ ๊ธ๊ผด ํฌ๊ธฐ๋ฅผ ์ค์ ํ๋ฉด ์ข
์ข
iOS์์ ์ด๋ฌํ ์๋ ํ๋/์ถ์ ๋์์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
- CSS ๋ณํ ๋ฐ ํ๋/์ถ์: ํน์ CSS ๋ณํ(์: transform: scale()) ๋๋ zoom๊ณผ ๊ฐ์ ์์ฑ์ ํนํ ๋ฐ์ํ ์ปจํ ์คํธ ๋ด์์ ์ ์คํ๊ฒ ์ ์ด๋์ง ์์ผ๋ฉด ๋ทฐํฌํธ์ ์์ธกํ ์ ์์ด ์ํธ ์์ฉํ ์ ์์ต๋๋ค.
ํค๋ณด๋ ํ์ ์ค ๋ทฐํฌํธ ํฌ๊ธฐ ์กฐ์
๋ชจ๋ฐ์ผ ์ฅ์น์์ ๊ฐ์ ํค๋ณด๋๊ฐ ๋ํ๋๋ฉด ์ผ๋ฐ์ ์ผ๋ก ์๊ฐ ๋ทฐํฌํธ์ ๋์ด๊ฐ ์ค์ด๋ญ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ ์ด์์ ๋ณ๊ฒฝ์ด ์ฌ๊ฐํ๊ฒ ๋ฐ์ํ์ฌ ์ฝํ ์ธ ๊ฐ ์๋ก ๋ฐ๋ ค๋๊ฑฐ๋, ํ๋๋ฅผ ๊ฐ๋ฆฌ๊ฑฐ๋, ์๊ธฐ์น ์์ ์คํฌ๋กค์ ์ ๋ฐํ ์ ์์ต๋๋ค.
- ๋ฌธ์ : ํ๋ฉด ํ๋จ์ ์์์ด ์๊ณ ํค๋ณด๋๊ฐ ๋ํ๋๋ฉด ์ ๋ ฅ ํ๋๊ฐ ๊ฐ๋ ค์ง ์ ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ด์ ์ด ๋ง์ถฐ์ง ์์๋ฅผ ๋ณด๊ธฐ ์ํด ํ์ด์ง๋ฅผ ์คํฌ๋กคํ๋ ค๊ณ ์๋ํ์ง๋ง, ์ฌ์ ํ ๋์ ๊ฑฐ์ฌ๋ฆด ์ ์์ต๋๋ค.
- ๋์ ์ฐจ์ด:
- iOS: ์ผ๋ฐ์ ์ผ๋ก ํค๋ณด๋๊ฐ ๋ํ๋ ๋ ๋ ์ด์์ ๋ทฐํฌํธ์ ์น์๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ด์ ์ด ๋ง์ถฐ์ง ์ ๋ ฅ ํ๋๋ฅผ ์๊ฐ ๋ทฐํฌํธ ๋ด์ ๊ฐ์ ธ์ค๊ธฐ ์ํด ํ์ด์ง๋ฅผ ์คํฌ๋กคํฉ๋๋ค.
- Android: ๋์์ ๋ ๋ค์ํ ์ ์์ต๋๋ค. ์ผ๋ถ Android ๋ธ๋ผ์ฐ์ ๋ ๋ ์ด์์ ๋ทฐํฌํธ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ ๋ฐ๋ฉด, ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ๋ iOS์ ๋ ์ ์ฌํ๊ฒ ์๋ํฉ๋๋ค.
- ์๋ฃจ์
:
- `resize` ๋ฉํ ํ๊ทธ ๊ฐ ์ฌ์ฉ (์ฃผ์!): . `interactive-widget` ์์ฑ์ ์ด ๋์์ ์ ์ดํ๊ธฐ ์ํ ์๋ก์ด ํ์ค์ด์ง๋ง ์ง์์ด ๋ณดํธ์ ์ด์ง๋ ์์ต๋๋ค.
- JavaScript๋ก ์์๋ก ์คํฌ๋กค: ์ค์ํ ์ ๋ ฅ ํ๋์ ๊ฒฝ์ฐ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ์ด์ ์ด ๋ง์ถฐ์ง ๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๋ณด๊ธฐ ์ข๊ฒ ์คํฌ๋กคํ ์ ์์ผ๋ฉฐ, ์ฃผ๋ณ ์ปจํ ์คํธ๊ฐ ๋ณด์ด๋๋ก ์์ ์คํ์ ์ ํฌํจํ ์ ์์ต๋๋ค.
- ๋ ์ด์์ ๋์์ธ: ์์ ๋ฐ ๋ํํ ์์๋ฅผ ํ๋ฉด ์๋จ ๋ถ๋ถ ๋ด์ ๋ฐฐ์นํ๋๋ก ๋์์ธํ๊ฑฐ๋, ํค๋ณด๋ ๋ชจ์์ ์ฐ์ํ๊ฒ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์คํฌ๋กค ๊ฐ๋ฅํ ์ปจํ ์ด๋์ ๋ํํ์ญ์์ค. ์คํฌ๋กค๋์ง ์์์ผ ํ๋ ์ค์ํ ์ ๋ณด๋ ๋ฒํผ์ ํ๋ฉด ๋งจ ์๋์ ๋ฐฐ์นํ์ง ๋ง์ญ์์ค.
- `visualViewport` API: ๊ณ ๊ธ ์๋๋ฆฌ์ค์ ๊ฒฝ์ฐ JavaScript `window.visualViewport` API๋ ์๊ฐ ๋ทฐํฌํธ์ ํฌ๊ธฐ์ ์์น์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ ํค๋ณด๋๋ฅผ ๊ณ ๋ คํ๊ธฐ ์ํ ๋ ์ ํํ ์กฐ์ ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
window.visualViewport.addEventListener('resize', () => {
console.log('Visual viewport height:', window.visualViewport.height);
});
๊ณ ๊ธ ๋ทฐํฌํธ ๊ณ ๋ ค ์ฌํญ
๊ธฐ๋ณธ ์์ฑ ๋ฐ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ฅผ ๋์ด, ๋ช ๊ฐ์ง ๊ณ ๊ธ ๊ณ ๋ ค ์ฌํญ์ ํตํด ๋ชจ๋ฐ์ผ ๋ทฐํฌํธ ์ ์ด๋ฅผ ๋์ฑ ์ธ๋ฐํ๊ฒ ์กฐ์ ํ์ฌ ๋ณด๋ค ์ธ๋ จ๋๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
๋ฐฉํฅ ๋ณ๊ฒฝ
๋ชจ๋ฐ์ผ ์ฅ์น๋ ์ธ๋ก ๋๋ ๊ฐ๋ก ๋ฐฉํฅ์ผ๋ก ์ก์ ์ ์์ผ๋ฉฐ, ์ด๋ ๊ฐ์ฉ ํ๋ฉด ์น์๋ฅผ ํฌ๊ฒ ๋ณ๊ฒฝํฉ๋๋ค. ๋์์ธ์ ์ด๋ฌํ ๋ณํ๋ฅผ ์ฐ์ํ๊ฒ ์์ฉํด์ผ ํฉ๋๋ค.
- ๋ฐฉํฅ์ฉ CSS ๋ฏธ๋์ด ์ฟผ๋ฆฌ: orientation ๋ฏธ๋์ด ๊ธฐ๋ฅ์ ์ฅ์น์ ๋ฐฉํฅ์ ๋ฐ๋ผ ํน์ ์คํ์ผ์ ์ ์ฉํ ์ ์๋๋ก ํฉ๋๋ค.
/* ์ธ๋ก ๋ชจ๋ ์คํ์ผ */
@media (orientation: portrait) { .some-element { width: 90%; } }
/* ๊ฐ๋ก ๋ชจ๋ ์คํ์ผ */
@media (orientation: landscape) { .some-element { width: 60%; } }
- ์ ์ฐํ ๋ ์ด์์: Flexbox(Flexbox) ๋ฐ Grid(CSS Grid) ๋ ์ด์์์ ์ฐ์ ์ ์ผ๋ก ์ฌ์ฉํ์ญ์์ค. ์ด๋ฌํ ๋ ์ด์์ ๋ชจ๋์ ๋ณธ์ง์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ์ ์ํ๋ฏ๋ก ์ด์ ์ ๊ณ ์ ๋๋น ๋๋ ์์น ๊ธฐ๋ฐ ๋ ์ด์์๋ณด๋ค ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ ๋ฐ ๋ฐฉํฅ ๋ณํ์ ํจ์ฌ ๋ ํ๋ ฅ์ ์ ๋๋ค.
- ์ฝํ ์ธ ๊ฐ๋ ์ฑ: ์ธ๋ก ๋ชจ๋์์ ํฐ ํ๋ธ๋ฆฟ์ ํ ์คํธ ์ค์ด ์ง๋์น๊ฒ ๊ธธ์ด์ง๊ฑฐ๋, ๋งค์ฐ ์์ ์ ํ๊ธฐ์ ์ธ๋ก ๋ชจ๋์์ ๋๋ฌด ์งง์์ง์ง ์๋๋ก ํ์ญ์์ค. ๋ฐฉํฅ์ ๋ํ ๋ฏธ๋์ด ์ฟผ๋ฆฌ ๋ด์์ ๊ธ๊ผด ํฌ๊ธฐ ๋ฐ ์ค ๋์ด๋ฅผ ์กฐ์ ํ๋ฉด ๋์์ด ๋ ์ ์์ต๋๋ค.
์ ๊ทผ์ฑ ๋ฐ ์ฌ์ฉ์ ์ ์ด
์ด๊ฒ์ ๋ฐ๋ณตํ ๊ฐ์น๊ฐ ์์ง๋ง ๋ค์ ๊ฐ์กฐํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ ๊ทผ์ฑ์ ๊ฒฐ์ฝ ๋์ค์ ์๊ฐํด์๋ ์ ๋ฉ๋๋ค. ๋ทฐํฌํธ ์ ์ด๋ ์น ์ฝํ ์ธ ๋ฅผ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ๋ฅ๋ ฅ์ด๋ ์ฅ์น์ ๊ด๊ณ์์ด ์ ๊ทผํ ์ ์๋๋ก ๋ง๋๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
- ํ๋/์ถ์ ๋นํ์ฑํ ๊ธ์ง: ์ด์ ์ ๊ฐ์กฐํ ๊ฒ์ฒ๋ผ user-scalable=no ๋๋ maximum-scale=1.0์ ์ค์ ํ๋ฉด ๋ธ๋ผ์ฐ์ ํ๋/์ถ์์ ์์กดํ๋ ์๊ฐ ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์์๊ฒ ์ฌ๊ฐํ๊ฒ ๋ฐฉํด๊ฐ ๋ ์ ์์ต๋๋ค. ํญ์ ์ฝํ ์ธ ํ์ฅ์ฑ ์ ์ด์ ๋ํด ์ฌ์ฉ์ ์ ์ด๋ฅผ ์ฐ์ ์ํ์ญ์์ค. ์ด๋ WCAG 2.1 ์ฑ๊ณต ๊ธฐ์ค 1.4.4(ํ ์คํธ ํฌ๊ธฐ ์กฐ์ ) ๋ฐ 1.4.10(ํ๋ฆ)๊ณผ ์ผ์นํ๋ฉฐ, ์ฝํ ์ธ ๋ 200%๊น์ง ํ๋ํ๊ฑฐ๋ ๊ฐ๋ก ์คํฌ๋กค ์์ด ๋จ์ผ ์ด์ ํ์๋ ๋ ์ฌ์ฉ ๊ฐ๋ฅํด์ผ ํจ์ ๊ฐ์กฐํฉ๋๋ค.
- ์ถฉ๋ถํ ํญ ๋์: ์ํธ ์์ฉ ์์(๋ฒํผ, ๋งํฌ)๊ฐ ํฐ์น์คํฌ๋ฆฐ์์ ํ๋/์ถ์ํ ๋๋ ์ฝ๊ฒ ํญํ ์ ์์ ๋งํผ ์ถฉ๋ถํ ํฌ๊ณ ๊ฐ๊ฒฉ์ด ์ถฉ๋ถํ์ง ํ์ธํ์ญ์์ค. ์ต์ 44x44 CSS ํฝ์ ํฌ๊ธฐ๋ ์ผ๋ฐ์ ์ธ ๊ถ์ฅ ์ฌํญ์ ๋๋ค.
- ๋๋น ๋ฐ ๊ฐ๋ ์ฑ: ์ถฉ๋ถํ ์์ ๋๋น๋ฅผ ์ ์งํ๊ณ ๋ทฐํฌํธ์ ํจ๊ป ์ ํ์ฅ๋๋ ์ฝ๊ธฐ ์ฌ์ด ๊ธ๊ผด ํฌ๊ธฐ๋ฅผ ์ฌ์ฉํ์ญ์์ค.
์ฑ๋ฅ ์ํฅ
ํจ๊ณผ์ ์ธ ๋ทฐํฌํธ ๊ด๋ฆฌ๋ ๋ชจ๋ฐ์ผ ์ฅ์น์์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์๋ ๊ธฐ์ฌํฉ๋๋ค.
- ํจ์จ์ ์ธ ๋ฆฌ์์ค ๋ก๋ฉ: ๋ฉํ ๋ทฐํฌํธ ์ค์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ํ๊ณ ๋ฐ์ํ ์ด๋ฏธ์ง ๊ธฐ์ ( srcset, sizes)์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ฐ์ผ ์ฅ์น๊ฐ ํด๋น ํ๋ฉด ํฌ๊ธฐ ๋ฐ DPR์ ์ ํฉํ ์ด๋ฏธ์ง ๋ฐ ์์ฐ๋ง ๋ค์ด๋ก๋ํ๋๋ก ํ์ฌ ๋ถํ์ํ ๋์ญํญ ์๋น๋ฅผ ์ค์ด๊ณ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํฉ๋๋ค. ์ด๋ ํนํ ์ข ๋์ ๋ฐ์ดํฐ ์๊ธ์ ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ธํฐ๋ท ์ธํ๋ผ๊ฐ ๋ ๋ฐ๋ฌ๋ ์ง์ญ์ ์ฌ์ฉ์์๊ฒ ์ค์ํฉ๋๋ค.
- ๋ฆฌํ๋ก์ฐ ๋ฐ ๋ฆฌํ์ธํธ ๊ฐ์: ๋ฏธ๋์ด ์ฟผ๋ฆฌ ๋ฐ ์ ๋ ๋จ์(์: ๋ทฐํฌํธ ๋จ์ ๋๋ ๋ฐฑ๋ถ์จ)๋ฅผ ํตํด ์ฐ์ํ๊ฒ ์ ์ํ๋ ์ ๊ตฌ์ฑ๋ ๋ฐ์ํ ๋ ์ด์์์ ๊ณ ์ ๋๋น ๋ ์ด์์์ ๋นํด ๋ณต์กํ ํ์ฅ ์๊ณ ๋ฆฌ์ฆ์ ํธ๋ฆฌ๊ฑฐํ๊ฑฐ๋ ์ง์์ ์ธ JavaScript ์กฐ์ ์ ์๊ตฌํ๋ ๊ฒ๋ณด๋ค ๋น์ฉ์ด ๋ง์ด ๋๋ ๋ ์ด์์ ์ฌ๊ณ์ฐ(๋ฆฌํ๋ก์ฐ) ๋ฐ ๋ฆฌํ์ธํธ๊ฐ ์ ์ต๋๋ค.
- ๊ฐ๋ก ์คํฌ๋กค ๋ฐฉ์ง: ๋ชจ๋ฐ์ผ์์ ๊ฐ์ฅ ํฐ ์ฑ๋ฅ ๋ฐ UX ๋ฐฉํด ์์ธ ์ค ํ๋๋ ์ฐ๋ฐ์ ์ธ ๊ฐ๋ก ์คํฌ๋กค์ ๋๋ค. ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋ ๋ทฐํฌํธ์ ๋ฐ์ํ ๋์์ธ์ ์ฝํ ์ธ ๊ฐ ํ๋ฉด์ ๋ง๋๋ก ํ์ฌ ๊ฐ๋ก ์คํฌ๋กค์ ์ ๊ฑฐํฉ๋๋ค. ์ด๋ ์ฌ์ฉ์์๊ฒ ์ข์ ๊ฐ์ ์ค ๋ฟ๋ง ์๋๋ผ ๋ธ๋ผ์ฐ์ ์ ๊ณ์ฐ์ ์ผ๋ก ๋ถ๋ด์ ์ค ์๋ ์์ต๋๋ค.
- ์ต์ ํ๋ ์ค์ ๋ ๋๋ง ๊ฒฝ๋ก: ๋ฉํ ๋ทฐํฌํธ ํ๊ทธ๋ฅผ ์น์ ๋ด์ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ๋ฐฐ์นํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์ฒ์๋ถํฐ ํ์ด์ง๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋ ๋๋งํ๋ ๋ฐฉ๋ฒ์ ์๊ฒ ๋์ด "์คํ์ผ์ด ์๋ ์ฝํ ์ธ ์ ๊น๋ฐ์" ๋๋ ์์ ํด์ผ ํ๋ ์ด๊ธฐ ์๋ชป๋ ํ๋/์ถ์ ์์ค์ ๋ฐฉ์งํฉ๋๋ค.
๋ทฐํฌํธ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
ํจ๊ณผ์ ์ธ ๋ทฐํฌํธ ์ ์ด๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ๋์์ธ, ๊ฐ๋ฐ ๋ฐ ํ ์คํธ์ ์ง์์ ์ธ ํ๋ก์ธ์ค์ ๋๋ค. ์ด๋ฌํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ค์ํ๋ฉด ๋ณดํธ์ ์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅํ๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋ ๋ชจ๋ฐ์ผ ์น ๊ฒฝํ์ ๋ง๋๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ํญ์ ํ์ค ๋ฉํ ๋ทฐํฌํธ ํ๊ทธ ํฌํจ: ์ด๊ฒ์ ๋ชจ๋ ๋ฐ์ํ ์น ์ฌ์ดํธ์ ํ์์ ์ธ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์
๋๋ค.
์ด๊ฒ์ ํ๋ ๋ฐ์ํ ์น ๊ฐ๋ฐ์ ์ํ ์ต์ ์ ์์์ ์ ์ ๊ณตํฉ๋๋ค. - ์ ์ฐํ ๋ ์ด์์ ์ฑํ: ๋ ์ด์์ ๊ตฌ์ฑ์ ์ํด CSS Flexbox ๋ฐ Grid๋ฅผ ์ฐ์ ์ ์ผ๋ก ์ฌ์ฉํ์ญ์์ค. ์ด๋ฌํ ๋๊ตฌ๋ ๋ณธ์ง์ ์ผ๋ก ๋ฐ์ํ์ผ๋ก ์ค๊ณ๋์์ผ๋ฉฐ ์ด์ ์ ๊ณ ์ ๋๋น ๋ ์ด์์ ๊ธฐ์ ๋ณด๋ค ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ์ ๋ฐฉํฅ ๋ณํ์ ํจ์ฌ ๋ ์ ์ ์ํฉ๋๋ค.
- ๋ชจ๋ฐ์ผ ์ฐ์ ์ ๊ทผ ๋ฐฉ์ ์ฑํ: ๊ฐ์ฅ ์์ ํ๋ฉด์ ๋จผ์ ๊ตฌ์ถํ ๋ค์ min-width ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ ํฐ ๋ทฐํฌํธ์ ๋ํด ์ ์ง์ ์ผ๋ก ๊ฐ์ ํ์ญ์์ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฝํ ์ธ ์ฐ์ ์์๊ฐ ๊ฐ์ ๋๊ณ ์ ์ธ๊ณ ๋ชจ๋ฐ์ผ ์ฌ์ฉ์์ ๋๋ค์๋ฅผ ์ํด ์ฑ๋ฅ์ด ์ต์ ํ๋ฉ๋๋ค.
- ๋ค์ํ ์ฅ์น ๋ฐ ๋ธ๋ผ์ฐ์ ์์ ์๊ฒฉํ๊ฒ ํ ์คํธ: ์๋ฎฌ๋ ์ดํฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ ์ ์ฉํ์ง๋ง ์ค์ ์ฅ์น ํ ์คํธ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ค์ํ ์ค์ ์ฅ์น(๊ตฌํ ๋ฐ ์ ํ ์ค๋งํธํฐ, ํ๋ธ๋ฆฟ, ๋ค์ํ ์ด์ ์ฒด์ (iOS, Android)) ๋ฐ ๋ค์ํ ๋ธ๋ผ์ฐ์ (Chrome, Safari, Firefox, Edge, Samsung Internet, UC Browser ๋ฑ)์์ ํ ์คํธํ์ฌ ๋ทฐํฌํธ ๋์ ๋๋ ๋ ๋๋ง์ ๋ฏธ๋ฌํ ๋ถ์ผ์น๋ฅผ ํฌ์ฐฉํ์ญ์์ค. ์๋น์ค์ ํน์ ์์ฅ ์ด์ ์ด ์๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ง์ญ์์ ์น ์ฌ์ดํธ๊ฐ ์๋ํ๋ ๋ฐฉ์์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด์ญ์์ค.
- ๋ค์ํ ํด์๋์ ๋ํด ์ด๋ฏธ์ง ์ต์ ํ: ์ด๋ฏธ์ง์ ๋ํด srcset ๋ฐ sizes ์์ฑ์ ํ์ฉํ๊ฑฐ๋ SVG๋ฅผ ๋ฒกํฐ ๊ทธ๋ํฝ์ ์ฌ์ฉํ๋ฉด ํ์ค ๋์คํ๋ ์ด์ ๋ถํ์ํ๊ฒ ํฐ ํ์ผ์ ์ ๊ณตํ์ง ์๊ณ ๋ ๊ณ ๋ฐ๋ DPR ํ๋ฉด์์ ์ ๋ช ํ ๋น์ฃผ์ผ์ ๋ณด์ฅํ ์ ์์ต๋๋ค.
- ์ ๊ทผ์ฑ ์ฐ์ : ์ฌ์ฉ์ ํ๋/์ถ์๋ฅผ ์ ๋ ๋นํ์ฑํํ์ง ๋ง์ญ์์ค. ์ถฉ๋ถํ ํฐ ํญ ๋์๊ณผ ํจ๊ป ๋์์ธํ๊ณ ํ๋ํ ๋ ์ฝํ ์ธ ๊ฐ ์ ํ๋ฅด๋์ง ํ์ธํ์ญ์์ค. ์ ๊ทผ ๊ฐ๋ฅํ ๋์์ธ์ ๋ชจ๋์๊ฒ ์ข์ ๋์์ธ์ด๋ฉฐ ๋ค์ํ ๊ธ๋ก๋ฒ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ์ถฉ์กฑํฉ๋๋ค.
- 100vh ๋ฌธ์ ์ฐ์ํ๊ฒ ์ฒ๋ฆฌ: ๋ชจ๋ฐ์ผ์์ `100vh` ๋ฒ๊ทธ๋ฅผ ์ธ์งํ๊ณ ์ ๋ทฐํฌํธ ๋จ์(`dvh`, `svh`, `lvh`)๋ฅผ ํด๋ฐฑ๊ณผ ํจ๊ป ๊ตฌํํ๊ฑฐ๋ ํ์ํ ๊ฒฝ์ฐ JavaScript ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ์ ์ฒด ๋์ด ์์๊ฐ ์์ธก ๊ฐ๋ฅํ๊ฒ ์๋ํ๋๋ก ํ์ญ์์ค.
- ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋ง ๋ฐ ์ ์: ๋ชจ๋ฐ์ผ ํ๊ฒฝ์ ๋์์์ด ์งํํ๊ณ ์์ต๋๋ค. ์๋ก์ด ์ฅ์น, ํ๋ฉด ํฌ๊ธฐ, ๋ธ๋ผ์ฐ์ ์ ๋ฐ์ดํธ ๋ฐ ์๋ก์ด ํ์ค(์ ๋ทฐํฌํธ ๋จ์ ๋๋ `interactive-widget`๊ณผ ๊ฐ์)์ ๋ทฐํฌํธ ์ ๋ต์ ์ฃผ๊ธฐ์ ์ผ๋ก ๊ฒํ ํ๊ณ ์กฐ์ ํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ์ต์ ์น ๊ฐ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก ๋ฐ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฅ์ ๋ํ ์ ๋ณด๋ฅผ ์ป์ผ์ญ์์ค.
๊ฒฐ๋ก
๋ฉํ ๋ทฐํฌํธ ํ๊ทธ๋ก ๊ตฌ๋๋๊ณ ๋ฐ์ํ ๋์์ธ ์์น์ผ๋ก ๊ฐํ๋ CSS ๋ทฐํฌํธ ๊ท์น์ ์ ์ธ๊ณ ๋ชจ๋ฐ์ผ ์ฅ์น์์ ํ์ํ๊ณ ํฌ๊ด์ ์ธ ์น ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ด๋ฌธ์ผ ๋ฟ์ ๋๋ค. ๋ชจ๋ฐ์ผ ์ธํฐ๋ท ์ก์ธ์ค๊ฐ ์ ์ ๋ ์ง๋ฐฐ์ ์ธ ์ธ์์์ ์ ์ ํ ๋ทฐํฌํธ ์ ์ด๋ฅผ ๋ฌด์ํ๋ ๊ฒ์ ์ ์ฌ ๊ณ ๊ฐ์ ์๋น ๋ถ๋ถ์ ์์ธ์ํค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ฒํํ ๋์ ์ค์ฌ์ง์์๋ ์ธ๋ด ๋ง์์์๋ ์ฝํ ์ธ ์ ์ก์ธ์คํ๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ๋ง์ ๋๋ค.
๊ถ์ฅ ๋ฉํ ๋ทฐํฌํธ ์ค์ ์ ์ ์คํ ์ ์ฉ, ๋ทฐํฌํธ ๋จ์์ ์ ์ฐ์ฑ ํ์ฉ, ๋ชจ๋ฐ์ผ ์ฐ์ ํจ๋ฌ๋ค์์์ CSS ๋ฏธ๋์ด ์ฟผ๋ฆฌ์์ ์ง๋ฅ์ ์ธ ๊ฒฐํฉ, ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์ ์ฌ์ ์๋ฐฉ์ ํด๊ฒฐ์ ํตํด ๊ฐ๋ฐ์๋ ๋ฐ์ํ ๋์์ธ์ ์ ์ฌ๋ ฅ์ ์ต๋ํ ๋ฐํํ ์ ์์ต๋๋ค. ๋ชฉํ๋ "๋ชจ๋ฐ์ผ์ ์น์ํ" ์ฌ์ดํธ๊ฐ ์๋๋ผ ์ง์ ์ผ๋ก "๋ชจ๋ฐ์ผ ๋ค์ดํฐ๋ธ"์ธ ์น ์ฌ์ดํธ๋ฅผ ๋ง๋๋ ๊ฒ์ ๋๋ค. ์ฆ, ๋ชจ๋ ์ฅ์น์ ์ํํ๊ฒ ์ ์ํ๊ณ , ์ฌ์ฉ์๊ฐ ์ฝํ ์ธ ์ ์ฝ๊ฒ ์ํธ ์์ฉํ ์ ์๋๋ก ํ๋ฉฐ, ํ๋ฉด ํฌ๊ธฐ๋ ์ง๋ฆฌ์ ์์น์ ๊ด๊ณ์์ด ๋์งํธ ์กด์ฌ๊ฐ ๋ณดํธ์ ์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅํ๊ณ ์ฆ๊ฑฐ์ธ ์ ์๋๋ก ๋ณด์ฅํ๋ ๊ฒ์ ๋๋ค. ๋ทฐํฌํธ๋ฅผ ๋ง์คํฐํ๋ ๊ฒ์ ๊ธ๋ก๋ฒ ๋์งํธ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ ๋ชจ๋ ํ๋ ์น ๊ฐ๋ฐ์์๊ฒ ํ์์ ์ธ ๊ธฐ์ ์ ๋๋ค.