1. 박스 모델(Box Model)

: 각 HTML 태그 요소를 하나의 박스로 보고, 박스 크기, 박스 배경 색, 박스 여백 등 HTML 태그를 박스로 다루는 체계


2. 박스의 구성

- 콘텐츠 : HTML 태그의 텍스트나 이미지 부분

- 패딩(padding) : 콘텐츠를 직접 둘러싸고 있는 내부 여백

- 테두리(border) : 패딩 외부의 외곽선 (직선, 점선, 이미지 사용 가능)

- 여백(margin) : 박스의 맨 바깥 영역. 테두리 바깥 공간


3. 박스를 제어하는 CSS3 프로퍼티

① 박스의 크기 : width, height, margin, padding 

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>박스 모델</title>
	<style type="text/css">
		body {
			background: ghostwhite;
		}
		span {
			background: deepskyblue;
		}
		div.box {
			background: yellow;
			border-style: solid;	/* 직선 */
			border-color: peru;
			margin: 40px;
			border-width: 30px;
			padding: 20px;
		}
	</style>
</head>
<body>
	<div class="box">
		<span>DIVDIVDIV</span>
	</div>
</body>
</html>

 

② 테두리의 두께와 모양과 색

p {
	border-width : 3px;
    	border-style : dotted;
    	border-color : blue;
}

 

③ 테두리를 꾸미는 단축 프로퍼티 : border

border : width style color

 

<예시>

p {
	border : 3px dotted blue;
}

 

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>박스 모델</title>
	<style type="text/css">
		div {
			background: yellow;
			padding: 20px;
			border: 5px dotted red; /* width style color */
			margin: 30px;
		}
	</style>
</head>
<body>
	<h3>박스 모델</h3>
	<p>margin 30px, padding 20px, border 5px의 빨간색 점선</p>
	<hr>
	<div><img src="media/mio.png" alt="고양이눈"></div>
</body>
</html>

 

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>다양한 테두리</title>
</head>
<body>
	<h3>다양한 테두리</h3>
	<hr>
	<p style="border:3px solid blue">3픽셀 solid</p>
	<p style="border:3px none blue">3픽셀 none</p>
	<p style="border:3px hidden blue">3픽셀 hidden</p>
	<p style="border:3px dotted blue">3픽셀 dotted</p>
	<p style="border:3px dashed blue">3픽셀 dashed</p>
	<p style="border:3px double blue">3픽셀 double</p>
	<p style="border:15px groove yellow">15픽셀 groove</p>
	<p style="border:15px ridge yellow">15픽셀 ridge</p>
	<p style="border:15px inset yellow">15픽셀 inset</p>
	<p style="border:15px outset yellow">15픽셀 outset</p>
</body>
</html>


4. 고급 테두리 꾸미기

① 둥근 모서리 테두리 : border-radius

 

 

② 이미지 테두리 : border-image

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>이미지 테두리 만들기</title>
	<style type="text/css">
		p {
			background: yellow;
			width: 200px;
			height: 60px;
			padding: 10px;
			border: 20px solid lightgray; /* border-width, border-style 동시 지정 */
		}
		/* round - 에지 이미지 반복 배치. 테두리 길이만큼 에지 이미지 크기 자동 조절 */
		#round {
			border-image: url("media/border.png") 30 round;
		}
		/* repeat - 에지 이미지 반복 배치. 에지 이미지 크기 자동 조절 안됨 */
		#repeat {
			border-image: url("media/border.png") 30 repeat;
		}
		/* stretch - 에지 이미지를 테두리 길이만큼 늘여 배치 */
		#stretch {
			border-image: url("media/border.png") 30 stretch;
		}

	</style>
</head>
<body>
	<h3>이미지 테두리 만들기</h3>
	<hr>
	다음은 원본 이미지입니다.<br>
	<img src="media/border.png" alt="원본">
	<hr>
	<p>20x20 크기의 회색 테두리를 가진 p 태그</p>
	<p id="round">round 스타일 이미지 테두리</p>
	<p id="repeat">repeat 스타일 이미지 테두리</p>
	<p id="stretch">stretch 스타일 이미지 테두리</p>
</body>
</html>


5. 배경

① 배경색, 배경이미지 : background-color, background-image

div {
	background-color : skyblue;
   	background-image : url("media/spongebob.png");
}

 

② 배경 이미지 위치 : background-position

background-position : center center;

 

③ 배경 이미지 크기 : background-size

background-size : 100px 100px	/* 100x100 크기로 출력 */

 

④ 배경 이미지 반복 출력 : background-repeat

background-repeat : repeat-y;	/* 수직 방향으로 반복 출력 */

 

⑤ background 단축 프로퍼티

div {
	background : skyblue url("media/spongebob.png") center center/100px 100px repeat-y;
}

 

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>배경 꾸미기</title>
	<style type="text/css">
		div {
			background-color: skyblue;
			background-size: 100px 100px;
			background-image: url("media/spongebob.png");
			background-repeat: repeat-y;
			background-position: center center;
		}
		div {
			width: 200px;
			height: 200px;
			color: blueviolet;
			font-size: 16px;
		}
	</style>
</head>
<body>
	<h3>div 박스에 배경 꾸미기</h3>
	<hr>
	<div>SpongeBob is an over-optimistic sponge that annoys other characters.</div>
</body>
</html>

'HTML5/CSS3 > 4. CSS3로 웹 페이지 꾸미기' 카테고리의 다른 글

Day 43 : Exercise  (0) 2021.12.16
Day 43 : 시각적 효과  (0) 2021.12.16
Day 43 : 색과 텍스트 꾸미기  (0) 2021.12.16
Day 42 : 셀렉터(selector)  (0) 2021.12.15
Day 42 : 연습 문제  (0) 2021.12.15

+ Recent posts