λ§ˆμ§„ 상쇄 (Margin-collapsing)

MDN
λΈ”λ‘μ˜ top 및 bottom λ§ˆμ§„μ€ λ•Œλ‘œ κ²°ν•©λ˜λŠ” λ§ˆμ§„ 쀑 크기가 κ°€μž₯ 큰 λ§ˆμ§„μœΌλ‘œ κ²°ν•©(combine, 상쇄(collapsed)) λ©λ‹ˆλ‹€.

μ–΄λ–€ 두 개의 블둝 μš”μ†Œμ˜ μƒν•˜ λ§ˆμ§„μ΄ κ²ΉμΉ  λ•Œ ν•œ μͺ½μ˜ κ°’λ§Œ μ μš©λ˜λŠ” ν˜„μƒμ΄λ‹€.

λ§ˆμ§„ 상쇄가 μΌμ–΄λ‚˜λŠ” 상황

  1. 인접 ν˜•μ œ λ°•μŠ€ κ°„ μƒν•˜ λ§ˆμ§„μ΄ κ²ΉμΉ  λ•Œ

겹쳐진 두 λ§ˆμ§„ 쀑 더 큰 λ§ˆμ§„ κ°’μœΌλ‘œ 상쇄해 λ Œλ”λ§ν•œλ‹€. 2. 빈 μš”μ†Œμ˜ μƒν•˜ λ§ˆμ§„μ΄ κ²ΉμΉ  λ•Œ
β€˜λΉˆ μš”μ†Œβ€™λž€ 높이(height)κ°€ 0인 μƒνƒœμ˜ μš”μ†Œλ₯Ό λ§ν•œλ‹€.

  • height / min-height / padding / border λ“± μƒν•˜λ‘œ λŠ˜μ–΄λ‚˜λŠ” 값을 λͺ…μ‹œμ μœΌλ‘œ μ£Όμ§€ μ•Šμ„ 경우
  • 내뢀에 Inline μ½˜ν…μΈ κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μš”μ†Œ
  1. λΆ€λͺ¨ λ°•μŠ€μ™€ 첫 번째 μžμ‹ λ°•μˆ˜μ˜ λ§ˆμ§„μ΄ κ²ΉμΉ  λ•Œ

κ·Έλž˜μ„œ 이럴 경우 λΆ€λͺ¨ λ°•μŠ€μ— padding을 μ£Όμ–΄ 간격을 μœ μ§€ν•˜λŠ” 것이 μ•ˆμ „ν•˜λ‹€.

λ§ˆμ§„ 상쇄 κ·œμΉ™

  • λ§ˆμ§„ μƒμ‡„λŠ” μΈμ ‘ν•œ 두 μš”μ†Œκ°€ μ˜¨μ „ν•œ block-level μš”μ†ŒμΌ λ•Œλ§Œ 적용
    (inline, inline-block, table-cell, table-caption μš”μ†ŒλŠ” block-level이 μ•„λ‹˜)
  • λ§ˆμ§„ 값이 0이더라도 상쇄 κ·œμΉ™μ€ 적용
  • 쒌우 λ§ˆμ§„μ€ κ²ΉμΉ˜λ”λΌλ„ 상쇄 X

λ§ˆμ§„ 상쇄 κ·œμΉ™ μ˜ˆμ™Έ

  • position: absolute
  • float: left / right (단, clear λ˜μ§€ μ•Šμ€ μƒνƒœ)
  • display: flex 일 λ•Œ λ‚΄λΆ€ flex box item
  • display: grid 일 λ•Œ λ‚΄λΆ€ grid item