MarkUp/CSS
[CSS] 마진상쇄 개념 알기
hhnn
2022. 5. 16. 12:34
마진상쇄란?
두개 이상 블럭요소의 마진이 겹쳤을때 한쪽의 마진값만 적용되는것.
(좌우 마진은 겹치지 않음)
🙌문제점
왜 그러는지 찾아보다가 아래의 참고자료를 찾아보게 됨.
3-2. 부모 박스와 마지막 자식 박스의 하단 마진이 나란히 겹칠 때의 상황이었다.
🙌해결방안
부모박스에 padding 또는 border 값을 지정해 벽을 만들어주어야 한다.
마진 상쇄 규칙 적용
- 마진 상쇄는 인접한 두 박스가 온전한 block-level 요소일 경우에만 적용됩니다.
(inline, inline-block, table-cell, table-caption 등의 요소는 block-level이 아닙니다.) - 마진 값이 0이더라도 상쇄 규칙은 적용됩니다.
- 좌우 마진은 겹치더라도 상쇄되지 않습니다.
마진 상쇄 규칙 예외
다음과 같은 상황에서는 인접 요소 간 마진 상쇄가 일어나지 않습니다.
- 박스가 position: absolute 된 상태
- 박스가 float: left/right 된 상태 (단, clear 되지 않은 상태)
- 박스가 display: flex 일 때 내부 flexbox item
- 박스가 display: grid 일 때 내부 grid item
-참고자료 css 마진상쇄 원리 완벽이해 발췌-
참고자료
CSS 마진 상쇄(Margin-collapsing) 원리 완벽 이해
반응형
SMALL