Position

1. κ°œμš”

position ν”„λ‘œνΌν‹°λŠ” μš”μ†Œμ˜ μœ„μΉ˜λ₯Ό μ •μ˜ν•œλ‹€. ν•΄λ‹Ή ν”„λ‘œνΌν‹°λ₯Ό μ‚¬μš©ν•˜λ©΄ μ›Ή λ¬Έμ„œμ—μ„œ μš”μ†Œμ˜ μœ„μΉ˜λ₯Ό 자유둭게 μ •ν•  수 μžˆλ‹€. top, bottom, left, right ν”„λ‘œνΌν‹°μ™€ ν•¨κ»˜ μ‚¬μš©ν•˜μ—¬ μœ„μΉ˜λ₯Ό μ§€μ •ν•œλ‹€.

μ•„λž˜μ˜ ν‘œλŠ” position ν”„λ‘œνΌν‹°κ°’μ΄λ‹€.

μ’…λ₯˜
μ„€λͺ…

static

λ¬Έμ„œμ˜ 흐름에 맞좰 λ°°μΉ˜ν•œλ‹€. κΈ°λ³Έκ°’

relative

μœ„μΉ«κ°’μ„ μ§€μ •ν•  수 μžˆλ‹€λŠ” 점을 μ œμ™Έν•˜λ©΄ staticκ³Ό κ°™λ‹€.

absolute

relative값을 μ‚¬μš©ν•œ μƒμœ„ μš”μ†Œλ₯Ό κΈ°μ€€μœΌλ‘œ μœ„μΉ˜λ₯Ό μ§€μ •ν•΄ λ°°μΉ˜ν•œλ‹€.

fixed

λΈŒλΌμš°μ € 창을 κΈ°μ€€μœΌλ‘œ μœ„μΉ˜λ₯Ό μ§€μ •ν•΄ λ°°μΉ˜ν•œλ‹€.


2. static (κΈ°λ³Έμœ„μΉ˜)

기본적인 μš”μ†Œμ˜ 배치 μˆœμ„œμ— 따라 μœ„μ—μ„œ μ•„λž˜λ‘œ, μ™Όμͺ½μ—μ„œ 였λ₯Έμͺ½μœΌλ‘œ μˆœμ„œμ— 따라 배치되면 λΆ€λͺ¨ μš”μ†Œ 내에 μš”μ†Œλ‘œμ„œ μ‘΄μž¬ν•  λ•ŒλŠ” λΆ€λͺ¨ μš”μ†Œμ˜ μœ„μΉ˜λ₯Ό κΈ°μ€€μœΌλ‘œ λ°°μΉ˜λœλ‹€.

μ’Œν‘œ ν”„λ‘œνΌν‹°(top, bottom, left, right)λ₯Ό 같이 μ‚¬μš©ν•  수 μ—†μœΌλ©° μ‚¬μš©ν•  경우 λ¬΄μ‹œλœλ‹€.

<!DOCTYPE html>
<html>
  <head>
    <style>
      .parent {
        width: 150px;
        height: 150px;
      }
      .children {
        background-color: bisque;
        height: 100%;
      }
    </style>
  </head>
  <body>
    <div class="parent">
      <div class="children">Static</div>
    </div>
  </body>
</html>
static

3. relative (μƒλŒ€μœ„μΉ˜)

κΈ°λ³Έ μœ„μΉ˜λ₯Ό κΈ°μ€€μœΌλ‘œ μ’Œν‘œ ν”„λ‘œνΌν‹°(top, bottom, left, right)λ₯Ό μ‚¬μš©ν•˜μ—¬ μœ„μΉ˜λ₯Ό μ΄λ™μ‹œν‚¬ 수 μžˆλ‹€.

relative

4. absolute (μ ˆλŒ€μœ„μΉ˜)

λΆ€λͺ¨ μš”μ†Œ λ˜λŠ” κ°€μž₯ κ°€κΉŒμ΄ μžˆλŠ” 쑰상 μš”μ†Œ(static μ œμ™Έ)λ₯Ό κΈ°μ€€μœΌλ‘œ μ’Œν‘œ ν”„λ‘œνΌν‹°(top, bottom, left, right)만큼 μ΄λ™ν•œλ‹€. 즉, relative, absolute, fiexed ν”„λ‘œνΌν‹°κ°€ μ„ μ–Έλ˜μ–΄ μžˆλŠ” λΆ€λͺ¨ λ˜λŠ” 쑰상 μš”μ†Œλ₯Ό κΈ°μ€€μœΌλ‘œ μœ„μΉ˜κ°€ κ²°μ •λœλ‹€.

만일 λΆ€λͺ¨ λ˜λŠ” 쑰상 μš”μ†Œκ°€ staitc인 경우, document bodyλ₯Ό κΈ°μ€€μœΌλ‘œ ν•˜μ—¬ μ’Œν‘œ ν”„λ‘œν„°ν‹°λŒ€λ‘œ μœ„μΉ˜ν•˜κ²Œ λœλ‹€.

absolute ν”„λ‘œνΌν‹° μ„ μ–Έ μ‹œ, block 레벨 μš”μ†Œμ˜ widthλŠ” inline μš”μ†Œμ™€ 같이 content에 맞게 λ³€ν™”λ˜λŠλ‘œ μ μ ˆν•œ widthλ₯Ό μ§€μ •ν•˜μ—¬μ•Ό ν•œλ‹€.

relative ν”„λ‘œνΌν‹°λŠ” κΈ°λ³Έ μœ„μΉ˜λ₯Ό κΈ°μ€€μœΌλ‘œ μ’Œν‘œ ν”„λ‘œνΌν‹°(top, bottom, left, right)λ₯Ό μ‚¬μš©ν•˜μ—¬ μœ„μΉ˜λ₯Ό μ΄λ™μ‹œν‚¨λ‹€. ν•˜μ§€λ§Œ absoulte ν”„λ‘œν„°ν”Ό μš”μ†ŒλŠ” λΆ€λͺ¨ μš”μ†Œμ˜ μ˜μ—­μ„ λ²—μ–΄λ‚˜ 자유둭게 μ–΄λ””λ“ μ§€ μœ„μΉ˜ν•  수 μžˆλ‹€.

asoulte

5. fixed (κ³ μ •μœ„μΉ˜)

λΆ€λͺ¨ μš”μ†Œμ™€ 관계없이 λΈŒλΌμš°μ €μ˜ viewportλ₯Ό κΈ°μ€€μœΌλ‘œ μ’Œν‘œ ν”„λ‘œνΌν‹°(top, bottom, left, right)λ₯Ό μ‚¬μš©ν•˜μ—¬ μœ„μΉ˜λ₯Ό μ΄λ™μ‹œν‚¨λ‹€.

슀크둀이 λ˜λ”λΌλ„ ν™”λ©΄μ—μ„œ 사라지지 μ•Šκ³  항상 같은 곳에 μœ„μΉ˜νžŒλ‹€.

fixed ν”„λ‘œνΌν‹° μ„ μ–Έ μ‹œ, block 레벨 μš”μ†Œμ˜ widthλŠ” inline μš”μ†Œμ™€ 같이 content에 맞게 λ³€ν™”λ˜λŠλ‘œ μ μ ˆν•œ widthλ₯Ό μ§€μ •ν•˜μ—¬μ•Ό ν•œλ‹€.

fixed

6. overflow ν”„λ‘œνΌν‹°

overflow ν”„λ‘œνΌν‹°λŠ” μžμ‹ μš”μ†Œκ°€ λΆ€λͺ¨ μš”μ†Œμ˜ μ˜μ—­μ„ 벗어났을 λ•Œ 처리 방법을 μ •μ˜ν•œλ‹€.

μ•„λž˜λŠ” overflow ν”„λ‘œνΌν‹° 값에 λŒ€ν•œ μ„€λͺ…이닀.

ν”„λ‘œνΌν‹° κ°’
μ„€λͺ…

visible

μ˜μ—­μ„ λ²—μ–΄λ‚œ 뢀뢄을 ν‘œμ‹œν•œλ‹€. κΈ°λ³Έκ°’

hidden

μ˜μ—­μ„ λ²—μ–΄λ‚œ 뢀뢄을 μž˜λΌλ‚΄μ–΄ 보이지 μ•Šκ²Œ ν•œλ‹€.

scroll

μ˜μ—­μ„ λ²—μ–΄λ‚œ 뢀뢄이 없어도 슀크둀 ν‘œμ‹œν•œλ‹€.(ν˜„μž¬ λŒ€λΆ€λΆ„ λΈŒλΌμš°μ €λŠ” auto와 λ™μΌν•˜κ²Œ μž‘λ™ν•œλ‹€.)

auto

μ˜μ—­μ„ λ²—μ–΄λ‚œ 뢀뢄이 μžˆμ„λ•Œλ§Œ 슀크둀 ν‘œμ‹œν•œλ‹€.

overflow

7. Conclusion

position: relative;λ₯Ό μ§€κΈˆκΉŒμ§€λŠ” 단지 absolute값을 μ„€μ •ν•˜κΈ° μœ„ν•΄ λΆ€λͺ¨μš”μ†Œ 쀑 μ›ν•˜λŠ” μš”μ†Œμ— μž‘μ„±ν•΄μ•Όν•˜λŠ” ν”„λ‘œνΌν‹°λ‘œ μ•Œκ³  μžˆμ—ˆλ‹€. ν•˜μ§€λ§Œ relative만의 νŠΉμ§•μ΄ μžˆμ—ˆκ³  κ·Έ μ“°μž„μƒˆκ°€ absolute와 ꡉμž₯히 λΉ„μŠ·ν•˜λ‹€λŠ” 것을 μ•Œμ•˜λ‹€. 단지 λ°”λ‘œ μœ„μ˜ λΆ€λͺ¨ μš”μ†ŒμΈμ§€ μ•„λ‹Œμ§€μ˜ 차이만 μžˆλ‹€. ν•˜μ§€λ§Œ μ§€κΈˆκΉŒμ§€ λ‹¨λ…μœΌλ‘œ relativeλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ•˜λ˜ 것을 μƒκ°ν•˜λ©΄ ν•΄λ‹Ή ν”„λ‘œνΌν‹° λŒ€μ‹ ν•˜μ—¬ padding을 μ‚¬μš©ν•  수 μžˆμ–΄μ„œ 그런 것이지 μ•Šμ„κΉŒ μ‹Άλ‹€. 그리고 μ§€κΈˆκΉŒμ§€ 컨텐츠 λ‚΄μ˜ scrollλ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” absoluteλ₯Ό 적극적으둜 μ‚¬μš©ν–ˆλŠ”λ° ꡳ이 κ·ΈλŸ¬μ§€ μ•Šκ³  relativeλ₯Ό μ‚¬μš©ν•΄λ„ 될 λ“― ν•˜λ‹€~


μ°Έκ³ 

poiemaweb 2-8 μš”μ†Œμ˜ μœ„μΉ˜ μ •μ˜ λ„μ„œ - HTML + CSS + μžλ°”μŠ€ν¬λ¦½νŠΈ μ›Ή ν‘œμ€€μ˜ 정석


πŸ‘†

πŸ“… 2022-07-20

Last updated