생활코딩

코스 전체목록

닫기

박스모델

박스모델이란?

HTML의 엘리먼트들은 (사각형 모양을 의미하는)박스의 형태를 가지고 있는데 이것을 가르켜 박스모델이라고 하고, 박스의 크기와 박스간의 간격을 정의하는 다양한 속성이 있다.

박스모델의 속성

  • margin : border를 기준으로 박스의 여백을 지정, 시각적인 요소는 없음
  • border : 박스의 테두리
  • padding : 테두리와 content간의 간격
  • content : 엘리먼트 안에 포함되는 컨텐츠

예제

example1.html (jsfiddle, github)

<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
	</head>
	<body>
		<div style="border:1px solid blue">
			<div style="width:100px; height:100px;padding:20px; border:2px solid red;margin:20px;">
				생활코딩
			</div>
		</div>
	</body>
</html>

content(컨텐츠)

  • 엘리먼트안에 포함되는 컨텐츠로 예를들어 <div>test</div>라고 태그를 기술했을 때 div앨리먼트의 content는 test임
  • content는 폭(width)과 높이(height)를 지정할 수 있다.

border(보더), 테두리

  • 엘리먼트의 테두리
  • 테두리는 margin과 padding의 경계가 된다.
  • 테두리의 굵기와 색상과 스타일을 지정할 수 있다.

padding(패딩)

  • 테두리와 컨텐츠 간의 여백

margin(마진)

  • 엘리먼트와 엘리먼트 간의 여백
  • 위 아래에 인접한 엘리먼트 간에는 margin의 값이 더 큰 쪽의 margin이 적용됨(좌우는 아님)

예제

example2.html  (jsfiddle, github)

<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
	</head>
	<body>
			<!-- 각 div의 margin을 20px로 지정 했을 때 div와 div의 간격이 40px가 아니고 20px인 이유는 마진겹침(margin collapsing)현상 때문이다.-->
			<div style="margin:20px;border:1px solid red;width:50px;height:50px"></div>
			<div style="margin:20px;border:1px solid red;width:50px;height:50px"></div>
			<div style="margin:20px;border:1px solid red;width:50px;height:50px"></div>
	</body>
</html>

margin, padding 표기법

  • margin:10px - 상우하좌의 margin값이 10px
  • margin:10px 20px - 상하 10px, 좌우 20px,
  • margin:10px 20px 30px - 상 10px, 좌우 20px, 하 30px
  • margin:10px 20px 30px 40px - 상우하좌의 순으로 값이 지정됨

참고

댓글

댓글 본문
버전 관리
egoing
현재 버전
선택 버전
graphittie 자세히 보기