[HTML] html-viewpoint meta tag attribute
Meta Tag ๋ฟ์๊ธฐ 2ํธ - html-viewpoint ์์ฑ์ด ์ด๋ค ์ด์ ๋ก ๋ง๋ค์ด์ง๊ฑด์ง, ์ค์ ์ด๋ป๊ฒ ์ฐ์ด๊ณ ์๋ ์ง๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค.
์น ์ฌ์ดํธ๋ค์ ๋์๋ค๋๋ค ๋ณด๋, ๋๋ถ๋ถ ์ฌ์ดํธ์ <head></head> ์์๋ meta tag viewpoint ๊ฐ ์ค์ ๋์ด ์์๋ค. viewpoint ์ ๋ํด์ ๊ธฐ์กด์ ์๊ณ ์์๊ณ ์ฐ๊ณ ์์์ง๋ง, ํ ๋ฒ ๋ ์ ํํ ์ง๊ณ ๊ฐ๊ณ ์ถ์ด ๊ณต๋ถํ ๋ด์ฉ๋ค์ ์ ๋ฆฌํ๋ค.
html viewport ๋ฅผ ๊ณต๋ถํ๊ธฐ ์ ์ ์๊ณ ๊ฐ์ผ ํ ๊ฒ๋ค
window.outerHeight, window.outerWidth, document.documentElement.clientHeight... ์ง๊ณ ๊ฐ๋ฉด ์ข๋ค. ์ค๋ช ๋ณด๋ค๋ ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ํ ๋ฒ ์ง์ ๊ทธ๋ ค๋ณด๋ฉด ์ดํด๊ฐ ํจ์ฌ ๋นจ๋ผ์ง๋ค.
๋ทฐํฌํธ๋ฅผ ์์๋ณด๊ธฐ ์ ์๊ณ ๊ฐ์ผํ ์์น๋ค
window.outerHeight - window.innerHeight = ๋ฌธ์ ์์ญ ๋ฐ์ ๋ธ๋ผ์ฐ์ ํญ ์์ญ ์ธ๋ก ๊ธธ์ด
window.outerWidth - window.innerWidth = ๋ฌธ์ ์์ญ ๋ฐ์ ์์ญ ๊ฐ๋ก ๊ธธ์ด (๊ทธ๋ฐ๋ฐ chrome, firefox ๋ฑ ์ต๊ทผ ๋ธ๋ผ์ฐ์ ๋ค์์๋ ์ต๋ํ ์ด ๋ ๊ฐ์ ๊ฐ๊ฒ ํด์ UX ๋ฅผ ์ข๊ฒ ํ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.)
window.innerHeight(/Width) - document.documentElement.clientHeight(/Widht) = scroll Height(/Width)
html viewport WHAT & WHY?
viewport ๋ ์นํ์ด์ง๊ฐ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ์ง์ฌ๊ฐํ์ ์์ญ์ ๋งํ๋ค. ์นํ์ด์ง๋ฅผ PC ์์ ๋ณด๋ค๋ณด๋ฉด ์ปจํ ์ธ ๊ฐ ๊ธธ์ด์ ์คํฌ๋กค์ ์๋๋ก ๋ด๋ฆฌ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ, ์ด๋ ์ ์ฒด ํ์ด์ง์ ํฌ๊ธฐ๊ฐ ์๋๋ผ ์ฐ๋ฆฌ ๋์ ๋ณด์ฌ์ง๋ ๊ทธ ๋ถ๋ถ๋ง์ด ๋ทฐํฌํธ ์ด๋ค.
๋น์ฐํ ์๊ธฐ์ง๋ง, ๋์ ๋ณด์ฌ์ง๋ ์์ญ๊ณผ ๊ฐ๋ฐ์๋ก์ ์ ์ํ๋ ์น ํ์ด์ง์ ์์ญ์ ์ฌ์ด์ฆ๊ฐ ๋์ผํ๊ฒ ์ต์ ํ๋ฅผ ํด์ผ ํ๋ค.
๋ทฐํฌํธ ์ฌ์ด์ฆ๋ document.documentElement.clientWidth ์ document.documentElement.clientWidth ๋ก ๊ตฌํ ์ ์๋ค.
๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๋ก๋ ์น ํ์ด์ง๋ฅผ ๋ณด๊ฒ ๋๋ฉด์, ๋ทฐํฌํธ์ ๋ํ ๊ณ ๋ฏผ์ด ์์ ๋์๋ค. ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ์์๋ PC ์ ๋ฌ๋ฆฌ ๋ธ๋ผ์ฐ์ ํฌ๊ธฐ๋ฅผ ์ ์ ๊ฐ ๋ฐ๊ฟ ์๊ฐ ์๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ค ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๋ width ๊ฐ 320px ์ผ์๋ ์๊ณ , ์ด๋ค ๊ธฐ๊ธฐ๋ 400px ์ผ์๋ ์๋ค. 980px ์ ๋ง์ถ์ด ์ ์๋ ์นํ์ด์ง๋ฅผ ์์ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ์์ ๋ณด๋ฉด ๊ธ์๋ฅผ ์ฝ๊ธฐ ํ๋ค ์ ๋๋ก ์ถ์๋์ด ๋ณด์ธ๋ค.
์ด๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ฐ, <head> ํ๊ทธ ์์ meta tag ํ ์ค์ ์ถ๊ฐํ๋ ๊ฒ์ด๋ค.
![viewport ๋ฅผ ์ฃผ์ง ์๊ณ ์ฝํ ์ธ width ๋ฅผ 590px ๋ก ์ค ๊ฒฝ์ฐ](/viewport_1.png "<meta name="viewport" ...> ๋ฅผ ์์ ๋ฃ์ง ์๊ณ , ์ฝํ ์ธ width ๋ฅผ 590px ๋ก ์ค ๊ฒฝ์ฐ")
์ ์ด๋ฏธ์ง์ฒ๋ผ ๋๋๋ฐ, ๊ทธ ์ด์ ๋ default viewport width ๊ฐ 980px ์ด๊ธฐ ๋๋ฌธ์, 590px ๋ก ์ ์๋ ์ปจํ ์ธ ๊ฐ ์ ๋ฐ์ ์ข ๋๋ ์์ญ์ผ๋ก ๋ณด์ด๋ ๊ฒ์ด๋ค.
![viewport์ width 590px ์ ๋ฃ์ด์ฃผ๋ฉด ์๋์ฒ๋ผ viewport ๊ฐ 590px ๋ก ๋ฐ๋์ด์ 590px ์ฝํ ์ธ ๊ฐ ๊ฝ์ฐจ์ ์์๊ฒ ๋์จ๋ค.](/viewport_2.png "<meta name="viewport" content="width=590px"> ์ ๋ฃ์ด์ฃผ๋ฉด ์๋์ฒ๋ผ viewport ๊ฐ 590px ๋ก ๋ฐ๋์ด์ 590px ์ฝํ ์ธ ๊ฐ ๊ฝ์ฐจ์ ์์๊ฒ ๋์จ๋ค.")
๊ทธ๋ผ, ์ผ์ผ์ด ๋ชจ๋ ๊ธฐ๊ธฐ๋ฅผ ์ด๋ ๊ฒ ๋์ํด์ผ ํ๋? ๊ทธ๋ ์ง ์๋ค. ๋ฌด์ ์ ํ๊ทธ ๐งโโ๏ธ๊ฐ ์๋ค.
์ ํ๊ทธ๋ฅผ ์ถ๊ฐํ๋ฉด, ๋๋ฐ์ด์ค ๊ฐ๋ก ๊ธธ์ด์ ๋ง์ถ์ด viewport ๊ฐ ์๋์ผ๋ก ๋ง์ถฐ์ง๊ณ , ์ด๊ธฐ ์ค ๋ ๋ฒจ ๋ฑ๋ ์๋์ผ๋ก ๋ง์ถฐ์ง๋ค.๐๐ป๐๐ป๐ค๐ป