본문 바로가기
프로그래밍

[코드라이언] HTML/CSS 박스 쪼개기 padding, border, margin

by 씬치 2023. 3. 25.

HTML과 CSS에서 사용되는 박스 모델(Box Model)은 HTML 요소를 사각형 박스로 처리합니다. 각각의 박스는 content, padding, border, margin의 4개의 영역으로 나뉩니다.

 

HTML/CSS 박스란? 박스 만들기(쪼개기)

 

거대한 한 페이지를 여러 개의 영역으로 나누어서 그 영역에 글자나 사진 등을 넣고 싶을 때가 있습니다. 문서 작업을 할 때에는 단을 나누거나 표를 만들어서 원하는 영역에 글자나 사진 등을 배치하고는 합니다. HTML/CSS에서는 단이나 표 대신 박스를 만들어서 그 안에 내용을 집어넣습니다. 먼저 박스를 만드는 것은 쉽습니다. <div> 태그를 이용합니다. 여러 개의 박스를 만들 때는 각 박스에 이름을 붙여줘야 다루기가 쉬워지겠죠? div class에 이름을 지어 주세요. 

<!DOCTYPE html>
  <head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="box_model.css">
  </head>
  <body> 
    <div class="box1">박스1</div>
    <div class="box2">박스2</div>
  </body>
</html>

 

박스의 구성 요소

 

박스는 content, padding, border, margin의 4개의 영역으로 나뉩니다.

박스의-구성요소를-보여주는-사진
출처:&nbsp;https://www.internetingishard.com/html-and-css/css-box-model/

  1. Content: Content 영역은 요소의 실제 내용을 담고 있는 부분입니다. 우리가 화면을 보는 사람들에게 직접적으로 보여 주고 싶은 것을 담는 부분이에요. 이 영역의 크기는 우리가 width와 height를 지정하면 됩니다.
  2. Padding: Padding 영역은 content와 border 사이의 간격을 나타내며 content 영역을 감싸고 있는 내부 여백이라고 생각할 수 있습니다. Padding은 content와 border 간의 거리를 제어하는 데 사용됩니다. 즉, 우리가 박스의 콘텐츠 영역에 사진 하나를 담았다고 생각해 볼게요. padding이 생기면 박스 border와 사진의 사이가 멀어지는 것이고 padding을 더 두껍게 하면 할수록 그 사이는 더 멀어지는 것입니다. 여백을 두기 싫다면 당연히 0으로 설정할 수도 있습니다.
  3. Border: Border는 콘텐트와 패딩 영역을 둘러싸고 있는 요소의 경계선입니다. 요소의 경계를 강조하거나 두 요소 사이를 구분하기 위해 사용됩니다. Border는 두께, 스타일, 색상을 지정할 수 있으며, 콘텐트와 패딩 영역을 둘러싸고 있는 모양의 경계를 만듭니다. 아까 우리가 사진을 담았죠? 그 사진에 여백도 줬어요. 그 여백 바깥으로 테두리를 설정하는 거예요. 테두리 색상, 모양(실선, 점선, 두 줄 등등), 두께 같은 것을 속성으로 줄 수 있겠죠. 여기서 잠깐! padding과 border의 크기를 키우면 박스에는 어떤 일이 일어날까요? 네! 박스 자체의 크기도 함께 커집니다.
  4. Margin: Margin은 요소의 바깥쪽 영역으로 요소와 인접한 다른 요소와의 간격을 나타냅니다. 예를 들어, 박스 두 개를 나란히 놓을 때 둘 사이의 간격을 처리하는 것이지요.

 

코드로 속성 지정하기

 

각 구성 요소들의 개념에 이어 사용법도 알아봅시다. 박스 모델의 네 가지 영역은 CSS에서 다양한 속성을 사용하여 지정할 수 있습니다. 예를 들어, width, height, padding, border, margin 등의 속성을 사용하여 각각의 영역의 크기, 두께, 스타일, 색상 등을 조절할 수 있습니다. 

  1. Content는 width와 height 속성을 사용해서 크기를 조절합니다. 
  2. Padding도 Margin과 마찬가지로 양수, 음수, 0의 값을 가질 수 있고 내용을 더 넓게 보여줄 수 있도록 합니다. padding-top, padding-right, padding-bottom, padding-left 속성을 사용하여 각각의 방향에 대한 값을 지정할 수 있습니다.
  3. Border는 border-width, border-style, border-color 속성을 사용하여 두께, 스타일, 색상을 지정할 수 있습니다. 방향을 지정하려면 border-top, border-right, border-bottom, border-left 속성을 사용합니다.
  4. Margin은 양수, 음수, 0의 값을 가질 수 있습니다. 양수값은 요소를 인접한 다른 요소에서 멀어지게 하고 음수값은 겹치게 합니다. margin-top, margin-right, margin-bottom, margin-left 속성을 사용하여 각각의 방향에 대한 값을 지정할 수 있습니다.

이 글 첫부분에서 우리가 html로 box1과 box2를 만들었지요? 아래의 코드는 그 박스들을 이렇게 저렇게 만들어 줄 css 코드입니다. width, height, margin, padding, border가 지정된 부분을 보시면 어떻게 사용하는지 이해가 되실 거예요. 

.box1{
	background-color: skyblue; 
	width: 100px;
	height: 100px;
	border: 5px solid black;
	padding: 20px;
	margin: 20px; 
}

.box2{
	background-color: violet;
	width: 100px;
	height: 100px;
	border: 5px solid purple;
}

 

  • padding의 여러 속성 사용하기
div {
  padding: 10px; /* 상하좌우 모두 10px */
  padding-top: 5px; /* 위쪽 5px */
  padding-bottom: 5px; /* 아래쪽 5px */
  padding-left: 20px; /* 왼쪽 20px */
  padding-right: 20px; /* 오른쪽 20px */
}
  • border의 여러 속성 사용하기
div {
  border-width: 2px; /* 두께 2px */
  border-style: solid; /* 스타일: 실선 */
  border-color: #ccc; /* 색상: 회색 */
  border-top: 1px dotted red; /* 위쪽 방향, 두께: 1px, 스타일: 점선, 색상: 빨강 */
  border-left: 1px dashed blue; /* 왼쪽 방향, 두께: 1px, 스타일: 파선, 색상: 파랑 */
}
  • margin의 여러 속성 사용하기
div {
  margin: 10px; /* 상하좌우 모두 10px */
  margin-top: 5px; /* 위쪽 5px */

박스 쪼개기 부분은 이두희 선생님께서 특히 중요하다고 강조하신 부분입니다. 반드시 이해하고 연습해야 합니다.

댓글