본문 바로가기
뒷북 정리 (국비 교육)/css

[css] step03~05. margin / padding / border

by 규글 2021. 12. 13.

step03. margin

앞으로 step05. border 까지 이 두 가지 그림을 기억하면 된다. 이 css들은 margin, padding, border를 앞에 쓰고, - (dash)와 함께 top, bottom, left, right를 뒤에 써서 작성한다. (ex - margin-top)

 

	<style>
		#mg1{
			margin-top: 10px;
			margin-right: 10px;
			margin-bottom: 10px;
			margin-left: 10px;
		}
		#mg2{
			margin: 10px 10px 10px 10px;
		}
		#mg3{
			margin: 10px;
		}
		#mg4{
			margin-top: 10px;
			margin-right: 20px;
			margin-bottom: 30px;
			margin-left: 40px;
		}
		#mg5{
			margin: 10px 20px 30px 40px;
		}	
		#mg6{
			margin-top: 20px;
			margin-right: 40px;
			margin-bottom: 20px;
			margin-left: 40px;
		}
		#mg7{
			/*margin: 20px 40px 20px 40px;*/
			margin: 20px 40px; 
		}
		#mg8{
			margin: 10px 20px 30px;
		}
	</style>
</head>
<body>
<button>버튼</button><br/>
<button id="mg1">버튼1</button><br/>
<button id="mg2">버튼2</button><br/>
<button id="mg3">버튼3</button><br/>
<button id="mg4">버튼4</button><br/>
<button id="mg5">버튼5</button><br/>
<button id="mg6">버튼6</button><br/>
<button id="mg7">버튼7</button><br/>
<button id="mg8">버튼8</button><br/>				
</body>

margin은 content를 둘러싸는 boundary의 외곽을 말한다.

  1. 'margin-위치' 의 방식으로 사용한다.
  2. top, bottom, left, right를 모두 작성하는 것은 번거로운 일이다. 때문에 한 줄에 나열할 수도 있다. 이때 순서는 top, right, bottom, left 순서이다. (clockwise or 판굿 반대 방향)
  3. 한 줄에 나열하더라도 같은 값을 네 번이나 나열하는 것 또한 번거로운 일이다. 값이 같을 경우 margin 하나로 통일하는 것이 가능하다.
  4. 만약에 top, bottom, left, right의 값이 모두 다르다면 각각 작성해주어야 한다.
  5. 물론 한 줄로 네 가지를 작성하는 것은 가능하다.
  6. 만약 top과 bottom, left와 right에 같은 값을 주고 싶을 수 있다.
  7. 그럴 때는 top과 bottom, left와 right를 통합해서 작성할 수 있다. 순서로 따지면 top과 right를 작성한 것이지만 top이 bottom까지, right가 left까지 포함한다. 즉, 마주보는 값이 같아지는 것이다.
  8. 그럼 세 개만 작성한다면 어떻게 될까? 마지막에 작성하지 않은 네 번째 값. 이 네 번째 값은 두 번째인 right의 값과 마주보는 것이기 때문에 right의 값과 같아진다.

 

 

step04. padding

	<style>
		#mg1{
			padding-top: 10px;
			padding-right: 10px;
			padding-bottom: 10px;
			padding-left: 10px;
		}
		#mg2{
			padding: 10px 10px 10px 10px;
		}
		#mg3{
			padding: 10px;
		}
		#mg4{
			padding-top: 10px;
			padding-right: 20px;
			padding-bottom: 30px;
			padding-left: 40px;
		}
		#mg5{
			padding: 10px 20px 30px 40px;
		}	
		#mg6{
			padding-top: 20px;
			padding-right: 40px;
			padding-bottom: 20px;
			padding-left: 40px;
		}
		#mg7{
			/*padding: 20px 40px 20px 40px;*/
			padding: 20px 40px; 
		}
		#mg8{
			padding: 10px 20px 30px;
		}
	</style>
</head>
<body>
<button>버튼</button><br/>
<button id="mg1">버튼1</button><br/>
<button id="mg2">버튼2</button><br/>
<button id="mg3">버튼3</button><br/>
<button id="mg4">버튼4</button><br/>
<button id="mg5">버튼5</button><br/>
<button id="mg6">버튼6</button><br/>
<button id="mg7">버튼7</button><br/>
<button id="mg8">버튼8</button><br/>				
</body>

padding은 content와 그를 둘러싸는 boundary 사이의 공간을 말한다. 예시 코드는 내용만 margin에서 padding으로 바꿔주었다. margin을 알았으면 padding은 공짜라고 말했다.

 

 

step05. border

	<style>
		div{
			width: 100px;
			height: 100px;
			background-color: #999;
		}
		.box{
			/* 경계선의 폭 */
			border-width: 10px;
			/* 경계선 스타일 none | solid | dotted | dashed | double | inset | outset */
			border-style: solid;
			/* 경계선 색상 */
			border-color: blue;
		}
		.box2{
			/* .box 안의 css 를 한줄로 작성하면 */
			border: 10px solid blue;
		}
		.box3{
			/* border-width: 10px; 를 풀어서 쓰면 */
			border-top-width: 10px;
			border-right-width: 10px;
			border-bottom-width: 10px;
			border-left-width: 10px;
			/* border-style: dotted; */
			border-top-style: dotted;
			border-right-style: dotted;
			border-bottom-style: dotted;
			border-left-style: dotted;
			/* border-color: red;*/
			border-top-color: red;
			border-right-color: red;
			border-bottom-color: red;
			border-left-color: red;
		}
		.box4{
			border-width: 10px 10px 10px 10px;
			border-style: dotted dotted dotted dotted;
			border-color: red red red red;
		}
		.box5{
			border-width: 10px 20px 30px 40px;
			border-style: solid dotted dashed inset;
			border-color: red green blue pink;
		}
	</style>
</head>
<body>
<div></div>
<div class="box">.box</div>
<div class="box2">.box2</div>
<div class="box3">.box3</div>
<div class="box4">.box4</div>
<div class="box5">.box5</div>
</body>
  1. border는 margin이나 padding과 약간 차이가 있다. margin과 padding은 크기만 정하면 됐지만, border는 width(굵기), color(색상), style(종류)를 모두 조정할 수 있다. style은 정해진 카테고리 내에서 결정할 수 있다.
  2. margin, padding과 마찬가지로 네 방향에 대한 조건이 동일할 때, 세 항목을 나란히 작성하는 것이 가능하다.
  3. 세 항목이 동일한데 풀어서쓴다면 상당히 번거로우니, 동일한 조건이라면 한 줄에 작성하자.
  4. 세 항목을 나란히 작성하는 것도 가능하긴 하지만, 항목별로 네 위치에 대해 작성하는 것도 가능하다. 예시의 경우는 네 방향이 동일하기 때문에 2번처럼 한 번만 작성해도 가능하긴 하다.
  5. 네 방향에 대한 css가 모두 다르다면 하나하나 적어주어야 한다. 대신 3번보다는 덜 번거롭다.

'뒷북 정리 (국비 교육) > css' 카테고리의 다른 글

[css] step08. pseudo element  (0) 2021.12.13
[css] step07. position  (0) 2021.12.13
[css] step06. pseudo class  (0) 2021.12.13
[css] step02. selector (선택자)  (0) 2021.12.13
[css] step01. css란?  (0) 2021.12.13

댓글