margin2 : 속성값이 2개일 경우 첫 번째 값(30px)이 top, bottom 마진의 값이 되고, 두 번째 값(50px)이 left, right 마진의 값이 적용된다.
margin3 : 속성값이 3개일 경우 순서대로 top(30px) → right(20px)→ bottom(50px)의 속성값이 되고, 마지막 left의 속성값은 마주보는 right 속성값(20px)과 똑같이 적용된다.
margin4 : 속성값이 4개일 경우 순서대로 top(30px) → right(50px)→ bottom(30px) → left(50px)의 값이 적용된다.
margin 속성을 사용하여 웹 문서를 가운데 정렬하기
margin 속성을 사용해 웹 문서의 내용을 화면 중앙에 배치하려면 우선적으로 배치할 요소의 너빗값이 정해져 있는 상태에서 margin-left와 margin-right의 속성값을 auto로 지정해야한다. 이렇게 지정하면 CSS는 웹 브라우저 화면의 너비에서 요소 너빗값을 뺀 나머지 영역을 좌우 마진으로 자동 계산한다.
CSS 박스모델(box model)이란 웹 문서의 내용을 박스 형태로 정의하는 방법을 말한다. 박스 모델에는 마진과 패딩, 테두리 등 박스가 여러 겹 들어있으며 이 박스 모델이 모여 웹 문서를 이룬다.
블록 레벨 요소와 인라인 레벨 요소
블록 레벨(block-level) 요소 : 태그를 사용해 요소를 삽입했을 때 혼자 한 줄을 차지 한 줄을 차지한다는 것은 해당 요소의 너비가 100%라는 뜻과 같다. 즉 블록 레벨 요소의 왼쪽이나 오른쪽에 다른 요소가 올 수 없다. 대표적인 태그로 <h1>, <div>, <p> 등이 있다.
인라인 레벨(inline-level) 요소 : 태그를 사용해 요소를 삽입했을 때 콘텐츠만큼만 영역을 차지 블록 레벨 요소와 다르게 콘텐츠 만큼만 영역을 차지하기 때문에 나머지 공간에 다른 요소가 올 수 있다. 즉 한 줄에 여러개의 인라인 레벨 요소를 표시할 수 있다. 대표적인 태그로 <span>, <img>, <strong> 등이 있다.
박스 모델의 기본 구성
박스 모델은 콘텐츠 영역, 박스와 콘텐츠 영역 사이의 여백인 패딩(padding), 박스의 테두리(border), 박스 모델 사이의 여백인 마진(margin) 등의 요소로 구성된다. 이때 마진이나 패딩은 웹 문서에서 다른 콘텐츠 사이의 간격이나 배치 등을 고려할 때 필요한 개념이다.
width, height: 콘텐츠 영역의 크기 지정
박스 모델에서 콘텐츠 영역의 크기를 지정할 때 너비는 width, 높이는 height 속성을 사용한다.
width와 height의 속성값은 다음과 같다.
<크기> : 너비나 높이의 값을 px이나 em단위로 지정
<백분율> : 박스 모델을 포함하는 부모 요소를 기준으로 너빗값이나 높잇값을 백분율(%)로 지정
auto : 박스 모델의 너빗값과 높잇값이 콘텐츠 양에 따라 자동으로 결정 (기본값)
box-sizing : 박스 모델의 크기 지정 방법 설정
box-sizing : border-box
콘텐츠 영역의 크기 뿐 아니라 패딩과 테두리의 값을 포함해서 박스 모델의 크기를 넣어야 할 때 사용한다.