CodeGym /자바 코스 /Frontend SELF KO /컨텐츠 모델과 경계

컨텐츠 모델과 경계

Frontend SELF KO
레벨 16 , 레슨 4
사용 가능

4.1 box-sizing 속성

CSS에서 box-sizing 속성은 요소의 크기 측정 모델을 관리하기 위한 강력한 도구야. 요소의 너비와 높이뿐만 아니라 여백, 경계 및 외부 여백을 계산하는 방식을 결정해. 아래에서 box-sizing이 어떻게 작동하는지 자세히 살펴보고 이것이 웹 페이지 레이아웃에 어떻게 영향을 미칠 수 있는지 알아보자.

기본 box-sizing 모델

Content-box (컨텐츠 모델)

content-box 값은 모든 요소의 기본값이야. 이 모델에서는 요소의 크기 (widthheight)가 여백과 경계를 제외한 컨텐츠의 크기만을 정의해. 즉, 여백과 경계가 요소의 전체 너비와 높이에 추가된다는 뜻이야.

Border-box (경계 모델)

border-box 값은 모델을 이렇게 변경해: 요소의 크기 (widthheight) 가 여백과 경계를 포함해. 이게 의미하는 바는 여백과 경계가 요소의 전체 너비와 높이에 포함돼서 크기 계산과 관리가 더 간단해진다는 거야.

box-sizing 사용 예시:

CSS
    
      .box {
        background-color: #3498db;
        color: white;
        padding: 20px;
        border: 5px solid #2c3e50;
        margin: 10px;
        width: 200px;
        height: 100px;
      }

      .content-box {
        box-sizing: content-box;
      }

      .border-box {
        box-sizing: border-box;
      }
    
  
HTML
    
      <div class="box content-box">Content-box: 너비와 높이는 컨텐츠만 포함해.</div>
      <div class="box border-box">Border-box: 너비와 높이는 여백과 경계를 포함해.</div>
    
  

코드 설명:

  • .box: 여백, 경계와 크기를 포함하는 모든 박스의 기본 스타일
  • .content-box: width와 height가 컨텐츠만 포함하는 box-sizing: content-box
  • .border-box: width와 height가 여백과 경계를 포함하는 box-sizing: border-box

4.2 box-sizing이 레이아웃에 미치는 영향

컨텐츠 모델 (Content-box)

box-sizing: content-box;가 사용될 때, 여백과 경계가 요소의 전체 너비와 높이에 추가돼. 추가 계산이 필요할 수 있어 크기와 위치를 결정할 때.

사용 예제

이 경우 요소의 전체 너비는 200px + 20px (padding) * 2 + 5px (border) * 2 = 250px, 전체 높이는 100px + 20px (padding) * 2 + 5px (border) * 2 = 150px.

CSS
    
      .content-box {
        box-sizing: content-box;
        width: 200px;
        height: 100px;
        padding: 20px;
        border: 5px solid #000;
      }
    
  
HTML
    
      <div class="box content-box">Content-box: 너비와 높이는 컨텐츠만 포함해.</div>
    
  

경계 모델 (Border-box)

box-sizing: border-box;가 사용될 때, 여백과 경계가 지정된 요소의 너비와 높이에 포함돼. 이는 크기 계산과 요소 크기 관리가 더 쉬워지도록 해줘, 특히 반응형 레이아웃을 만들 때.

사용 예제:

CSS
    
      .border-box {
        box-sizing: border-box;
        width: 200px;
        height: 100px;
        padding: 20px;
        border: 5px solid #000;
      }
    
  
HTML
    
      <div class="box border-box">Border-box: 너비와 높이는 여백과 경계를 포함해.</div>
    
  

4.3 반응형 레이아웃 만들기

box-sizing: border-box;의 사용은 반응형 레이아웃 만들기를 더 쉽게 만들어줘, 왜냐면 요소 크기에 여백과 경계가 포함돼서, 예상치 못한 오버플로우를 방지해주기 때문이야.

사용 예제:

CSS
    
      * {
        box-sizing: border-box;
      }

      .container {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        padding: 10px;
        background-color: #f4f4f4;
      }

      .item {
        flex: 1 1 calc(33.333% - 20px);
        padding: 20px;
        border: 5px solid #3498db;
        background-color: #fff;
      }
    
  
HTML
    
      <div class="container">
        <div class="item">아이템 1</div>
        <div class="item">아이템 2</div>
        <div class="item">아이템 3</div>
        <div class="item">아이템 4</div>
        <div class="item">아이템 5</div>
        <div class="item">아이템 6</div>
      </div>
    
  

코드 설명:

  • * { box-sizing: border-box; }: 페이지 상의 모든 요소에 경계 모델을 적용해서 크기 관리를 쉽게 함
  • .container: 반응형 레이아웃을 가진 Flex 컨테이너
  • .item: padding과 border를 포함하는 균등한 너비 배분의 Flex 요소들

4.4 내부 여백이 있는 고정 크기

box-sizing: border-box;의 사용은 고정 크기의 요소를 쉽게 지정할 수 있게 해줘, 내부 여백이 있을 때 오버플로우를 걱정할 필요가 없이.

사용 예제:

CSS
    
      .fixed-size {
        box-sizing: border-box;
        width: 300px;
        height: 150px;
        padding: 20px;
        border: 5px solid #2ecc71;
        background-color: #ecf0f1;
        text-align: center;
        line-height: 150px; /* 텍스트 수직 중앙 정렬 */
      }
    
  
HTML
    
      <div class="fixed-size">
        고정 크기
      </div>
    
  

코드 설명:

  • .fixed-size: padding과 border를 포함한 300x150 픽셀 고정 크기의 요소로 크기를 정확하게 제어할 수 있음
1
Опрос
블록 모델,  16 уровень,  4 лекция
недоступен
블록 모델
블록 모델
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION