[CSS] 박스 모델의 개념

2024. 12. 12. 15:16·기초 학습/CSS

Box Model이란?

모든 HTML 문서의 구성 요소는 Box(상자) 형태로 정의된다. 웹페이지의 레이아웃은 이 박스들을 적절하게 배치하고 스타일링하는 과정이다.

Box Model은 다음 네 가지 영역으로 구성된다.

  1. 콘텐츠: 텍스트와 이미지가 표시되는 영역
  2. 패딩(padding): 콘텐츠와 테두리(border) 사이의 내부 여백
  3. 테두리(border): 패딩과 외부 여백(margin) 사이의 경계
  4. 여백(margin): 박스 바깥의 외부 간격

각 영역은 상, 하, 좌, 우 네 영역을 독립적으로 설정할 수 있다.


Box Model의 영역별 설명

콘텐츠 영역

콘텐츠 영역은 각 요소의 본질적인 부분으로 텍스트나 이미지가 표시된다. width와 height속성을 통해 크기를 지정하며, 이는 기본적으로 콘텐츠 영역 에 적용된다.

<div style="width: 300px; height: 150px;"></div>

위의 코드는 콘텐츠 영역이 가로 300px, 세로 150px 사이즈라는 걸 의미한다.
그러나 실제 박스 크기를 계산할 때 border,padding가 포함되기 때문에, 각각의 박스를 정확하게 배치하기 위해서는 border와 padding도 고려하는게 좋다. 이는 box-xizing 속성을 사용하면 된다. box-sizing 이란?

개발자 도구(Ctrl + Shift + I)를 열면, 콘텐츠 영역은 파란색으로 표시된다.


패딩 영역

패딩은 콘텐츠와 테두리(border) 사이의 공간이다.
padding 속성을 이용해 네 방향에 여백을 설정할 수 있다.

패딩 속성의 종류

/* 모든 면에 동일한 값 */
padding: 10px;

/* 상/하와 좌/우에 서로 다른 값 */
padding: 5px 10px; /* 상,하: 5px / 좌,우: 10px */

/* 상, 우/좌, 하 각각 설정 */
padding: 5px 10px 15px;

/* 상, 우, 하, 좌 각각 설정 */
padding: 5px 10px 15px 20px;

개발자 도구(Ctrl + Shift + I)를 열면, 패딩 영역은 초록색으로 표시된다.


테두리(Border) 영역

테두리는 패딩과 외부 여백(margin) 사이의 경계선이다.
테두리의 두께, 색상, 스타일을 변경할 수 있다.

border: 1px solid black; /* 1px  검은색 실선 */

 

더 자세한 내용 : 테두리의 속성


마진(여백) 영역

여백이란 한 요소가 있고 또 다른 요소가 있을 때, 두 요소의 테두리 사이의 간격을 말한다.
이 때 테두리가 보이지 않는다고 테두리가 없는 건 아니라는 걸 명심하자!
마진 영역은 박스 외부 공간에 영향을 미치고, 박스 자체의 크기에는 포함되지 않는다.

/* 모든 면에 동일한 값 */
margin: 10px;

/* 상/하와 좌/우에 서로 다른 값 */
margin: 5px 10px; /* 상,하: 5px / 좌,우: 10px */

/* 상, 우/좌, 하 각각 설정 */
margin: 5px 10px 15px;

/* 상, 우, 하, 좌 각각 설정 */
margin: 5px 10px 15px 20px;

개발자 도구(Ctrl + Shift + I)를 열면, 여백 영역은 주황색으로 표시된다.


참고한 사이트

박스 모델

'기초 학습 > CSS' 카테고리의 다른 글

[CSS] CSS의 단위 (Relative, Absolute)  (3) 2024.12.13
[CSS] Display 속성 (inline / block/ inline-block)  (1) 2024.12.12
[CSS] CSS 테두리(border)와 크기(width/height)  (0) 2024.12.10
[CSS] CSS의 우선순위  (1) 2024.12.10
[CSS] 가상 클래스 선택자  (0) 2024.12.10
'기초 학습/CSS' 카테고리의 다른 글
  • [CSS] CSS의 단위 (Relative, Absolute)
  • [CSS] Display 속성 (inline / block/ inline-block)
  • [CSS] CSS 테두리(border)와 크기(width/height)
  • [CSS] CSS의 우선순위
뜐🐸
뜐🐸
패왕색 패기를 갖춘 뜐입니다~
  • 뜐🐸
    뜐의 개발 로그
    뜐🐸
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 기초 학습
        • HTML
        • CSS
        • JavaScript
        • Version Co..
        • 미니 프로젝트
        • DOM & 웹 AP..
      • CSS 프레임워크
        • Bootstrap
      • React
        • 개념 정리
        • 기초 정리
      • 알고리즘
        • Week 1: 입출..
        • 재귀
        • 백트래킹
      • javascript
      • FastAPI
        • 크롤링 서버 만들기
      • 전역 상태 관리
        • Redux
      • 한 입 리액트 챌린..
      • 영어
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    :hover
    inline-block
    티스토리챌린지
    :active
    :focus
    :nth-child(n)
    자바스크립트 #하노이 탑 #재귀 #백준 # 11729
    백준 #코딩테스트 #1074번 #재귀 #알고리즘 # 알고리즘 문제풀이
    오블완
    가상 선택자
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
뜐🐸
[CSS] 박스 모델의 개념
상단으로

티스토리툴바