[TIL] CSS - Position

ํ…Œ๋””ยท2022๋…„ 6์›” 20์ผ
0

๐ŸŽจPosition

html ์š”์†Œ๊ฐ€ ์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ์‹์„ ์„ค์ •ํ•˜๋Š” ์†์„ฑ

  • Static position(์ •์  ์œ„์น˜)
  • relative position(์ƒ๋Œ€ ์œ„์น˜)
    • ๊ธฐ๋ณธ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ขŒํ‘œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ„์น˜๋ฅผ ์ด๋™์‹œํ‚ค๋Š” ์†์„ฑ
  • absolute position(์ ˆ๋Œ€ ์œ„์น˜)
    • ๋ถ€๋ชจ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ขŒํ‘œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ„์น˜๋ฅผ ์ด๋™์‹œํ‚ค๋Š” ์†์„ฑ
      ๋‹จ, ๋ถ€๋ชจ์š”์†Œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ body๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜๋ฅผ ์„ค์ •
      ๋‹ค๋ฅธ ์š”์†Œ๊ฐ€ ๋จผ์ € ์œ„์น˜๋ฅผ ์ ์œ ํ•ด๋„ ๊ทธ ์œ„๋กœ ์š”์†Œ๋ฅผ ๋ฎ๋Š”๋‹ค
  • fixed position(๊ณ ์ • ์œ„์น˜)
    • ํ™”๋ฉด์„ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ์‹
      (์›น ํŽ˜์ด์ง€๊ฐ€ ์Šคํฌ๋กค ๋˜์–ด๋„ ๊ณ ์ •๋œ ์œ„์น˜์— ์š”์†Œ๋ฅผ ๋‘”๋‹ค)
  • z-index
    • ๊ฒน์ณ์ง€๋Š” ์š”์†Œ๋“ค์˜ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ
    • ์†์„ฑ์— ํฐ ์ˆซ์ž๊ฐ’์„ ์ง€์ •ํ• ์ˆ˜๋ก ํ™”๋ฉด ์ „๋ฉด์— ์ถœ๋ ฅ๋œ๋‹ค
    • position์ด static ์ด์™ธ์ธ ์š”์†Œ์—๋งŒ ์ ์šฉ๋œ๋‹ค

๐Ÿ“ŒPosition ๋ถ€์—ฌ ์œ ๋ฌด ์ฐจ์ด

position์ด ๋ถ€์—ฌ๋˜๋ฉด
left, right, top, bottom ์†์„ฑ๋ช…์„ ์‚ฌ์šฉํ•  ๊ถŒํ•œ์ด ์ƒ๊ธด๋‹ค

-์˜ˆ์‹œ-

#position {
    width: 150px;
    height: 150px;
    background: red;
    border: 3px solid blue;
    position: relative;
    left: 100px;
}

๐Ÿ’ก relative vs absolute ๋น„๊ต

absolute๋Š” ๋ถ€๋ชจ๊ฐ€ ์žˆ์œผ๋ฉด ๋ถ€๋ชจ์˜ ์˜ํ–ฅ์„ ๋ฐ›์•„ ์œ„์น˜๋ฅผ ์„ ์ •ํ•˜๊ณ  ๋ถ€๋ชจ๊ฐ€ ์—†์œผ๋ฉด Body๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜์„ ์ •

relative๋Š” ๋ถ€๋ชจ์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ณ  ์Šคํ…(ํ˜„์žฌ์œ„์น˜)์—์„œ ์›€์ง์ธ๋‹ค


๐Ÿ’ก ์ ˆ๋Œ€์œ„์น˜(absolute position) ์ง€์ • ๋ฐฉ์‹

<div class="relative">์ด ์š”์†Œ๋Š” ์ƒ๋Œ€ ์œ„์น˜ ์ง€์ • ๋ฐฉ์‹์œผ๋กœ ์œ„์น˜๋ฅผ ์„ค์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
		<div class="absolute">์ด ์š”์†Œ๋Š” ์ ˆ๋Œ€ ์œ„์น˜ ์ง€์ • ๋ฐฉ์‹์œผ๋กœ ์œ„์น˜๋ฅผ ์„ค์ •ํ•œ ํ›„, top ์†์„ฑ๊ฐ’์„ 50px๋กœ ์„ค์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.</div>
	</div>
	<div class="absolute">์ด ์š”์†Œ๋Š” ์ ˆ๋Œ€ ์œ„์น˜ ์ง€์ • ๋ฐฉ์‹์œผ๋กœ ์œ„์น˜๋ฅผ ์„ค์ •ํ•œ ํ›„, top ์†์„ฑ๊ฐ’์„ 50px๋กœ ์„ค์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.</div>
	<p>์ ˆ๋Œ€ ์œ„์น˜๋Š” ํ•ด๋‹น ์š”์†Œ์˜ ๋ฐ”๋กœ ์ƒ์œ„์˜ ์œ„์น˜๊ฐ€ ์„ค์ •๋œ ์กฐ์ƒ(ancestor) ์š”์†Œ์— ๋”ฐ๋ผ ์œ„์น˜๋ฅผ ์žฌ์กฐ์ •ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค!</p>

๐Ÿ’ก ์ •์  ์œ„์น˜(static position) ์ง€์ • ๋ฐฉ์‹์˜ ํŠน์ง•

<h1>์ •์  ์œ„์น˜(static position) ์ง€์ • ๋ฐฉ์‹์˜ ํŠน์ง•</h1>
	<div class="container">
		<div class="static position">์ •์  ์œ„์น˜(static position)</div>
		<div class="relative position">์ƒ๋Œ€ ์œ„์น˜(relative position)</div>
		<div class="fixed position">๊ณ ์ • ์œ„์น˜(fixed position)</div>
		<div class="absolute position">์ ˆ๋Œ€ ์œ„์น˜(absolute position)</div>
	</div>

0๊ฐœ์˜ ๋Œ“๊ธ€