본문 바로가기

컴퓨터과학/Front-end

[CSS] 마진 병합 (Margin Collapsing)

마진 병합은 CSS의 margin 값이 서로 병합되는 현상을 말한다. 마진 병합은 형제 태그끼리 발생하는 것과 부모 자식 간에 발생하는 현상으로 나뉜다. 또한 마진 병합은 상하에서만 일어나는 현상이므로 inline구조에선 발생하지 않으며, margin-top과 margin-bottom 사이에서만 발생한다.

 

형제 태그끼리의 병합 현상

See the Pen Margin Collapsing 1 by hyeon (@longflash) on CodePen.

 

먼저 box1의 margin-bottom은 50px, box2의 margin-top은 100px을 주었고, box3와 box4의 간격은 정확히 100px을 주었다. 하지만 1과 2의 상하 간격이 3과 4의 상하간격인 100px과 같은 것을 볼 수 있다. box1에 50px, box2에 100px을 줬으니, 둘의 간격이 150px로 되야하나 '마진 병합 현상' 때문에 둘 중에서 큰 값인 100px만이 적용되는 것이다. 

 

부모 자신 간의 마진 병합

See the Pen Margin Collapsing 2 by hyeon (@longflash) on CodePen.

 

이 마진 병합은 자식의 margin-top이 부모에게도 영향을 주는 것을 의미한다. 위의 예에서, 부모 박스는 하늘색, 자식 박스는 분홍색이다. 자식 박스에만 margin-top을 100px만큼 줬으니, 하늘색 박스는 움직이지 않고 분홍색 박스만 아래로 이동해야하나, 부모 박스도 자식 박스처럼 똑같이 margin-top값을 갖게 되는 것을 볼 수 있다. 

'컴퓨터과학 > Front-end' 카테고리의 다른 글

[CSS] float 속성  (0) 2022.10.14
[HTML] 자주 쓰는 태그 Block / Inline 구분해놓기  (0) 2022.10.11