margin과 padding
웹사이트를 제작할때의 골격을 잡을때 margin과 padding 두 용어는 여백의 이미로 많이 사용 되고 있습니다. width와 heght 속성과 마찬가지로 숫자 뒤에 단위를 표시하여 적습니다. 내부 여백은 padding, 외부여백은 margin 이라는 용어를 사용합니다. 그림을 통해서 margin과 padding 영역을 확인 해 보겠습니다.
위 그림은 CSS Box Model의 단면도 입니다. 1
안쪽에서 밖으로 content, padding, border, margin으로 구분됩니다.
그림을 잘 살펴보시면 margin은 border를 기준으로 바깥쪽에 위치해 있고
padding은 border를 기준으로 안쪽에 위치해 있습니다.
방향성
margin과 padding의 값은 상하좌우 방향마다 여백을 다르게 설정할 수 있습니다.
margin: 10 5 10 5px;
위 10px 오른쪽 5px 아래 10px 왼쪽 5px을 4개의 수치는 위에서부터 시계방향으로 위 오른쪽 아래 왼쪽 순서로 설정합니다.
margin: 10px
같은 표현은 상하좌우 모두 10px을 의미합니다.
margin: 20px 10px
은 상하 20px, 좌우 10px을 의미합니다.
margin: 10px 20px 30px
은 위30px, 좌우20px, 아래 40px을 의미합니다.
즉 방향의 위부터 시계방향으로 회전하여 위 오른쪽 아래 왼쪽 순서로 설정합니다.
마진겹침(margin-collapsing) 현상
<span class="repeat">
margin: 50px
</span>
<span class="repeat">
margin: 50px
</span>
.repeat{
border:1px solid black;
display:block;
margin:50px;
width:120px;
height:120px;
}
display:block 속성을 주고 margin을 상하좌우 50px 입력 하였습니다. 실행하면 어떤 결과가 나올 까요? 첫번째 박스의 margin-bottom : 50px과 두번째 박스의 margin-top : 50px로 인해서 두사이의 간격은 100px이라고 생각 하실 수 있습니다. 하지만 두 개 이상의 margin이 세로 방향으로 만났을때 값이 큰 margin 하나로 합쳐지는 현상이 일어 납니다. 이 현상을 제대로 이해하지 못하고 작업을 진행할때 이해 할 수 없는 CSS의 동작으로 인해서 멘붕이 올 수도 있으니 꼭 확인해 보시는게 좋겠습니다.
마진겹침 현상
마진 겹침현상이 일어나는 세가지 경우
1. 위, 아래 엘리먼트들의 마진이 겹칠시 둘 중 마진이 큰게 둘 사이의 마진값이 됩니다.
2.위, 아래 엘리먼트들의 마진이 겹치고, 위의 엘리먼트 시각적 요소가 없어지면, 시각적 요소가 없어진 엘리먼트 마진 top-bottom과 left-right의 큰값으로 합쳐져서 계산 됩니다.
3.부모, 자식 엘리먼트 사이에서 보모의 시각적 요소가 없어지면, 부모,자식 마진 중 마진이 큰 쪽이 자식 마진처럼 사용 됩니다.
참조
https://www.w3schools.com/css/css_boxmodel.asp
https://opentutorials.org/course/2418/13464
- Chrome 개발자 도구 Elements탭에서 확인 가능합니다. [본문으로]
'현대리가 생각하는 IT' 카테고리의 다른 글
JSP 처리과정 (0) | 2018.08.01 |
---|---|
Percent Encoding (0) | 2018.07.26 |
JSON (JavaScript Object Notation) 기초 (0) | 2018.07.11 |
HTTP에서의 압축 (0) | 2018.07.08 |