position(relative & absolute)

๐Ÿ“„ position

position์€ HTML ์š”์†Œ๊ฐ€ ๋ฐฐ์น˜๋˜๋Š” ๋ฐฉ์‹์„ ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“„ position์˜ ์†์„ฑ๊ฐ’

1. static: ๊ธฐ๋ณธ๊ฐ’

position์ด ๊ธฐ๋ณธ ์†์„ฑ์ผ ๋•Œ๋Š” ์œ„์น˜ ์กฐ์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ธฐ๋ณธ HTML ์š”์†Œ์˜ ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ top, left, bottom right๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

.item2 {
  position: static;
  top: 30px; // ์˜๋ฏธ์—†๋Š” ์ฝ”๋“œ
  left: 30px; // ์˜๋ฏธ์—†๋Š” ์ฝ”๋“œ
}

2. relative: ๊ธฐ๋ณธ๊ฐ’

: ์›๋ž˜ ์žˆ๋˜ ์ž๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์š”์†Œ์˜ ์œ„์น˜๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

div {
  width: 100px;
  height: 100px;
  background-color: red;

  position: relative;
  top: 100px;
  left: 100px; // ์œ„์—์„œ๋ถ€ํ„ฐ 100px, ์™ผ์ชฝ์—์„œ๋ถ€ํ„ฐ 100px์ด๋™
}

์›๋ž˜ ์œ„์น˜๋ณด๋‹ค ์œ„์—์„œ๋ถ€ํ„ฐ 100px, ์™ผ์ชฝ์—์„œ๋ถ€ํ„ฐ 100px ๋–จ์–ด์ง„๋‹ค.

3. absolute

: ์š”์†Œ๋ฅผ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์„œ์˜ ํ๋ฆ„์—์„œ ์ œ๊ฑฐํ•˜๊ณ ,

๋Œ€์ƒ์˜ ๋ถ€๋ชจ ์š”์†Œ ์ค‘ relative๊ฐ€ ์ ์šฉ๋œ ์š”์†Œ๊ฐ€ ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ์œ„์น˜๋ฅผ ์ ˆ๋Œ€ ์ขŒํ‘œ์˜ ๊ธฐ์ค€์œผ๋กœ ์ •ํ•ฉ๋‹ˆ๋‹ค.

relative๊ฐ€ ์ ์šฉ๋œ ์š”์†Œ๊ฐ€ ์—†๋‹ค๋ฉด bodyํƒœ๊ทธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ ˆ๋Œ€ ์œ„์น˜๋ฅผ ์ •ํ•ฉ๋‹ˆ๋‹ค.

div {
  width: 100px;
  height: 100px;
  background-color: red;

  position: absolute;
  top: 100px;
  left: 100px;
}

4. fixed

: ์Šคํฌ๋กค๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋ทฐํฌํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์š”์†Œ์˜ ์œ„์น˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์Šคํฌ๋กค์„ ๋‚ด๋ ค๋„ ํ™”๋ฉด์— ๊ณ ์ •๋˜์–ด ์œ„์น˜๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

.item2 {
  position: fixed;
  top: 30px;
  left: 30px;
}

4. sticky

: ์š”์†Œ์˜ ์›๋ž˜ ์œ„์น˜์— ์žˆ๋‹ค๊ฐ€ ์Šคํฌ๋กค์ด ๋‚ด๋ ค๊ฐ€๋ฉด ์ง€์ •๋œ ์ขŒํ‘œ์— ๊ณ ์ •๋ฉ๋‹ˆ๋‹ค.

๊ธฐ์ค€์€ ๋ถ€๋ชจ ์š”์†Œ์˜ ์ขŒํ‘œ์ž…๋‹ˆ๋‹ค.

์Šคํฌ๋กค์ด ๋‚ด๋ ค๊ฐ€์ง€ ์•Š์•˜์„ ๋•Œ๋Š” static์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๋‹ค๊ฐ€, ํ•ด๋‹น์š”์†Œ์˜ ์œ„์น˜ ์•„๋ž˜๋กœ ์Šคํฌ๋กค์ด ๋‚ด๋ ค๊ฐ€๋ฉด ์ง€์ •ํ•œ ์ขŒํ‘œ์— ๊ณ ์ •๋ฉ๋‹ˆ๋‹ค.

.item2 {
  position: sticky;
  top: 30px;
  left: 30px;
}
---

## ์ถœ์ฒ˜

- [๊ฐ•๋ ฅํ•œ CSS](https://www.inflearn.com/course/%EA%B0%95%EB%A0%A5-css-%EC%BD%94%EB%93%9C%EC%BA%A0%ED%94%84)

Leave a comment