Language/JavaScript (WEB)

๐ŸŒ HTML ์š”์†Œ์˜ ์œ„์น˜ ์ขŒํ‘œ ๊ฐ’ ์–ป๊ธฐ

์ธํŒŒ_ 2023. 2. 27. 09:35

html-element-position

HTML ์š”์†Œ์˜ ์ขŒํ‘œ

์›น๋ฌธ์„œ์˜ ์–ด๋–ค ์š”์†Œ(element)์˜ ์œ„์น˜ ๊ฐ’์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๊ตฌํ•  ํ•„์š”๊ฐ€ ์žˆ์„๋•Œ, DOMRect ํด๋ž˜์Šค์˜ getBoundingClientRect() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์ขŒํ‘œ ์ •๋ณด๊ฐ€ ๋“ค์€ ๊ฐ์ฒด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ง€์›ํ•˜๋ฉฐ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์œ„์น˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค

const rect = document.querySelector('div').getBoundingClientRect();
console.log(rect);

html-element-position

getBoundingClientRect() ๋ฉ”์„œ๋“œ์˜ ๋ฐ˜ํ™˜ ๊ฐ’์€ ์—˜๋ฆฌ๋จผํŠธ์˜ padding๊ณผ border-width๋ฅผ ํฌํ•จํ•ด ์ „๋ฐ˜์ ์ธ ์‚ฌ๊ฐํ˜•์˜ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ px ๋‹จ์œ„๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๊ฐ ์†์„ฑ์˜ ๊ฐ’๋“ค์ด ๋‚˜ํƒ€๋‚˜๋Š” ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • x : ๋ธŒ๋ผ์šฐ์ € ์ฐฝ๊ธฐ์ค€ x ์ขŒํ‘œ
  • y : ๋ธŒ๋ผ์šฐ์ € ์ฐฝ๊ธฐ์ค€ y ์ขŒํ‘œ
  • width : ์—˜๋ฆฌ๋จผํŠธ ๊ฐ€๋กœ ๊ธธ์ด
  • height : ์—˜๋ฆฌ๋จผํŠธ ์„ธ๋กœ ๊ธธ์ด
  • top : ๋ธŒ๋ผ์šฐ์ € ์ฐฝ๊ธฐ์ค€ ์„ธ๋กœ ์‹œ์ž‘์  ๋ถ€ํ„ฐ ์—˜๋ฆฌ๋จผํŠธ ์œ—๋ณ€ ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ (y ๊ฐ’๊ณผ ๊ฐ™์Œ)
  • left : ๋ธŒ๋ผ์šฐ์ € ์ฐฝ๊ธฐ์ค€ ๊ฐ€๋กœ ์‹œ์ž‘์  ๋ถ€ํ„ฐ ์—˜๋ฆฌ๋จผํŠธ ์ขŒ์ธก๋ณ€ ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ (x ๊ฐ’๊ณผ ๊ฐ™์Œ)
  • right : ๋ธŒ๋ผ์šฐ์ € ์ฐฝ๊ธฐ์ค€ ๊ฐ€๋กœ ์‹œ์ž‘์  ๋ถ€ํ„ฐ ์—˜๋ฆฌ๋จผํŠธ ์šฐ์ธก๋ณ€ ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ (x + width ๊ฐ’๊ณผ ๊ฐ™์Œ)
  • bottom : ๋ธŒ๋ผ์šฐ์ € ์ฐฝ๊ธฐ์ค€ ์„ธ๋กœ ์‹œ์ž‘์  ๋ถ€ํ„ฐ ์—˜๋ฆฌ๋จผํŠธ ์•„๋ž˜๋ณ€ ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ (y + height ๊ฐ’๊ณผ ๊ฐ™์Œ)

html-element-position

์š”์†Œ์˜ ์ขŒํ‘œ๋Š” ์Œ์ˆ˜์ผ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฌธ์„œ ํŽ˜์ด์ง€๊ฐ€ ์Šคํฌ๋กค๋˜์–ด ํ˜„์žฌ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ ์œ„์— ์š”์†Œ๊ฐ€ ์œ„์น˜ํ•ด ์žˆ๋Š” ๊ฒฝ์šฐ top์˜ ๊ฐ’์€ ์Œ์ˆ˜์ด๊ฒŒ ๋œ๋‹ค.

# ์ฐธ๊ณ ์ž๋ฃŒ

https://ko.javascript.info/coordinates