본문 바로가기
카테고리 없음

CSS3 속성 완벽 가이드

by 소녹87 2025. 3. 12.

이번 포스트에서는 CSS3의 속성 중 박스 모델, 테두리 속성, 박스 속성에 대해 자세히 알아보겠습니다.

CSS3 속성

  • 박스 모델(Box Model)
  • 테두리(Border) 속성
  • 박스(Box) 속성
  • 레이아웃(Layout) 속성
  • 표(Table) 속성

1. 박스 모델 (Box Model)

박스 모델은 CSS에서 요소의 크기와 여백을 정의하는 데 사용됩니다. 박스 모델은 다음 속성으로 구성됩니다.

  • width와 height: 요소의 너비와 높이를 정의합니다.
  • padding: 요소의 내부 여백을 정의합니다.
  • border: 요소의 테두리를 정의합니다.
  • margin: 요소의 외부 여백을 정의합니다.

박스 모델은 모든 HTML 요소가 사각형 박스로 표현된다는 개념입니다. 박스 모델은 네 가지 주요 구성 요소로 이루어져 있습니다: 콘텐츠, 패딩, 테두리, 마진입니다. 각 요소는 다음과 같은 역할을 합니다.

  • 콘텐츠 : 실제 내용이 들어가는 부분입니다.
  • 패딩 : 콘텐츠와 테두리 사이의 공간입니다.
  • 테두리 : 박스를 둘러싸는 선입니다.
  • 마진 : 박스와 다른 요소 사이의 공간입니다.

예제코드

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>박스 모델 예제</title>
  <style>
    /* 마진 영역 (Margin) */
    .margin {
      background: #f9e79f; /* 연한 노란색: 마진 영역 */
      padding: 40px;       /* 마진 영역의 크기를 시각적으로 표현 */
      position: relative;
      display: inline-block;
    }
    .margin::before {
      content: "마진";
      position: absolute; top: 40px; left: 40px;
      top: 0px;
      left: 10px;
      background: #f9e79f;
      padding: 2px 6px;
      border: 1px solid #ccc;
      font-size: 12px;
    }

    /* 테두리 영역 (Border) */
    .border {
      border: 10px solid #3498db; /* 파란색 테두리 */
      position: relative;
    }
    .border::before {
      content: "테두리";
      position: absolute; top: 40px; left: 40px;
      top: -20px;
      left: 60px;
      background: #3498db;
      color: #fff;
      padding: 2px 6px;
      font-size: 12px;
    }

    /* 패딩 영역 (Padding) */
    .padding {
      padding: 30px;
      background: #aed6f1; /* 연한 하늘색: 패딩 영역 */
      position: relative;
    }
    .padding::before {
      content: "패딩";
      position: absolute;
top: 40px; left: 40px;
      top: -20px;
      left: 10px;
      background: #aed6f1;
      padding: 2px 6px;
      font-size: 12px;
    }

    /* 콘텐츠 영역 (Content) */
    .content {
      background: #a9dfbf; /* 연한 녹색: 실제 콘텐츠 */
      position: relative;
      padding: 10px;
    }
    .content::before {
      content: "콘텐츠";
      position: absolute;
      top: -20px;
      left: 10px;
      background: #a9dfbf;
      padding: 2px 6px;
      font-size: 12px;
    }
  </style>
</head>
<body>
  <div class="margin">
    <div class="border">
      <div class="padding">
        <div class="content">
          박스 모델 예제입니다.
        </div>
      </div>
    </div>
  </div>
</body>
</html>

 

 

2. 테두리 속성 (Border Properties)

테두리 속성은 요소의 테두리를 스타일링하는 데 사용됩니다. 주요 테두리 속성은 다음과 같습니다.

  • border-style: 테두리의 스타일을 정의합니다. (예: solid, dashed, dotted)
  • border-width: 테두리의 두께를 정의합니다.
  • border-color: 테두리의 색상을 정의합니다.
  • border-radius: 테두리의 둥근 정도를 정의합니다.

예제코드

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>테두리 속성 예제</title>
  <style>
    .border-box {
      width: 300px;
      padding: 20px;
      margin: 20px auto;
      background-color: #fff;
      /* 기본 테두리 스타일 */
      border: 2px dashed #ff5722;
      
      /* 테두리 둥글게 만들기 */
      border-radius: 15px;
      
      /* 그라데이션 테두리 (border-image) */
      border-image: linear-gradient(to right, #ff5722, #4caf50) 1;
    }
  </style>
</head>
<body>
  <div class="border-box">
    이것은 다양한 테두리 속성을 적용한 예제입니다.
  </div>
</body>
</html>

 

 

3. 박스 속성 (Box Properties)

박스 속성은 요소의 크기와 위치를 정의하는 데 사용됩니다. 주요 박스 속성은 다음과 같습니다.

  • display: 요소의 표시 방식을 정의합니다. (예: block, inline, flex)
  • position: 요소의 위치를 정의합니다. (예: static, relative, absolute)
  • top, right, bottom, left: 요소의 위치를 정의합니다.
  • float: 요소의 부동 여부를 정의합니다.

예제코드

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>박스 속성 예제</title>
  <style>
    .box-example {
      width: 250px;
      height: 150px;
      padding: 10px;
      margin: 20px;
      background-color: #e0f7fa;
      
      /* 내용이 지정된 영역을 벗어나면 스크롤 생성 */
      overflow: auto;
      
      /* box-sizing: border-box; 로 설정하면 padding과 border를 width, height에 포함 */
      box-sizing: border-box;
      
      /* display 속성을 block, inline-block, 또는 flex 등으로 변경 가능 */
      display: inline-block;
    }
  </style>
</head>
<body>
  <div class="box-example">
    이 박스는 <code>overflow</code>, <code>box-sizing</code>, <code>display</code> 등의 다양한 박스 속성을 활용하고 있습니다.
    <br>
    박스 속성은 요소의 크기와 위치를 정의하는 데 사용됩니다. <br>
    주요 박스 속성은 다음과 같습니다.<br>
    (예: block, inline, flex)<br>
    (예: static, relative, absolute)<br>
  </div>
</body>
</html>

 

 

4. CSS3 속성의 활용 예시

 HTML 코드 예시

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>CSS3 둥근 모서리 예시</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <div class="rounded-box">
    CSS3로 만든 둥근 모서리 박스입니다!
  </div>
</body>
</html>

 

 CSS 코드 (styles.css)

.rounded-box {
  width: 300px;                 /* 박스 너비 */
  height: 150px;                /* 박스 높이 */
  background-color: #4CAF50;    /* 배경색 */
  color: white;                 /* 텍스트 색상 */
  border: 3px solid #388E3C;    /* 테두리 두께, 스타일, 색상 */
  border-radius: 20px;          /* 둥근 모서리 설정 (핵심 속성) */
  box-shadow: 0 4px 8px rgba(0,0,0,0.3); /* 박스 그림자 추가 */
  padding: 20px;                /* 내부 여백 */
  text-align: center;           /* 텍스트 가운데 정렬 */
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  box-sizing: border-box;       /* 테두리와 패딩 포함 크기 계산 */
}

이 예시를 웹 브라우저에서 실행하면, 초록색 둥근 모서리 박스가 나타납니다.

텍스트가 가운데 정렬되고, 그림자가 있어 약간 떠 있는 느낌을 줍니다.

위의 코드 예시를 활용하여 원하는 스타일에 맞게 조정해 보세요.