[CSS] #11 Flexbox & Grid, CSS Grid 기초 완전 정복! 2차원 레이아웃 설계를 위한 핵심 속성 정리

2025. 8. 22. 18:00·Web Front/CSS
반응형

 

 

안녕하세요, 토스트데브입니다!
지난 글에서 Flexbox로 수평 또는 수직 정렬을 다뤘다면, 오늘은 한 차원 더 확장된 레이아웃 시스템인 CSS Grid Layout에 대해 배워보겠습니다.

Grid는 2차원(행과 열)의 격자 구조를 기반으로 정교한 레이아웃을 설계할 수 있어, 대시보드, 갤러리, 블로그 카드 등 다양한 UI에 유용하게 활용됩니다.

 

 

1️⃣ CSS Grid란?

CSS Grid Layout은 요소를 행(row)과 열(column) 기준으로 배치하는 2차원 레이아웃 시스템입니다.

  • display: grid를 부모 요소에 지정하면, 해당 요소는 Grid 컨테이너
  • 자식 요소들은 Grid 아이템이 됩니다.

 

 

2️⃣ 기본 구조

<div class="grid-container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
</div>
.grid-container {
  display: grid;
  grid-template-columns: 100px 100px 100px;
}

👉 위 코드는 너비가 100px인 3개의 열로 구성된 Grid를 생성합니다.

 

 

3️⃣ 주요 속성 정리

✅ display: grid

Grid 레이아웃을 활성화합니다.

 

✅ grid-template-columns – 열 정의

grid-template-columns: 1fr 1fr 1fr;
  • 3개의 열 생성, 각 열은 전체 너비의 1/3씩 차지
  • fr은 fraction 단위로, 남은 공간을 비율로 나눕니다.

다른 예:

grid-template-columns: 200px auto 1fr;

 

✅ grid-template-rows – 행 정의

grid-template-rows: 100px 200px;
  • 첫 번째 행: 100px
  • 두 번째 행: 200px

 

✅ gap 또는 row-gap, column-gap

grid-gap: 20px;
  • 행과 열 사이에 공백 추가
row-gap: 10px;
column-gap: 30px;

 

✅ grid-column, grid-row – 아이템 위치 지정

.item1 {
  grid-column: 1 / 3; /* 1열부터 2열까지 차지 */
}
.item2 {
  grid-row: 2 / 4; /* 2행부터 3행까지 차지 */
}

 

✅ grid-template-areas – 이름 기반 레이아웃

.grid-container {
  display: grid;
  grid-template-areas:
    "header header"
    "sidebar main"
    "footer footer";
  grid-template-columns: 200px 1fr;
}
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main { grid-area: main; }
.footer { grid-area: footer; }

💡 HTML 구조와 시각적 레이아웃을 분리하여 가독성과 유지보수성이 향상됩니다.

 

✅ justify-items / align-items – 아이템 정렬

  • justify-items: 열 기준 정렬 (가로)
  • align-items: 행 기준 정렬 (세로)
.grid-container {
  justify-items: center;
  align-items: center;
}

 

✅ justify-content / align-content – 전체 그리드 정렬

  • justify-content: 가로 방향으로 전체 Grid 위치 조정
  • align-content: 세로 방향으로 전체 Grid 위치 조정

 

 

4️⃣ 반응형을 위한 auto-fit & minmax

grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));

 

  • 열의 수를 자동 조정하며, 최소 200px, 최대 남은 공간 사용
  • 반응형 카드 레이아웃, 갤러리 등에 필수

 

 

5️⃣ 예제: 간단한 카드 레이아웃

.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
}

 

👉 이렇게 하면 화면 크기에 따라 유동적으로 카드가 줄바꿈되며 정렬됩니다.

 

 

✅ 정리하며…

CSS Grid는 Flexbox보다 구조적이고, 복잡한 UI 레이아웃도 더 간단하고 직관적으로 설계할 수 있습니다.
특히, 정렬 + 위치 지정 + 반응형 설계가 쉬워서 대형 프로젝트에 적합합니다.

Flexbox vs Grid 요약

  • Flexbox: 한 줄 정렬에 최적 (1차원)
  • Grid: 격자 기반의 전체 레이아웃에 최적 (2차원)

 

 

#CSSGrid #그리드레이아웃 #displayGrid #웹디자인기초 #프론트엔드기초 #반응형디자인 #CSS기초 #gridTemplate #2차원레이아웃 #웹개발입문

반응형
저작자표시 비영리 (새창열림)

'Web Front > CSS' 카테고리의 다른 글

[CSS] #10 Flexbox & Grid, CSS Flexbox 완벽 가이드! 레이아웃 정렬부터 축 개념까지 쉽게 배우기  (0) 2025.08.21
[CSS] #09 레이아웃 구성, CSS 레이아웃 구성 완전 정복! display, position, float까지 핵심 속성 정리  (0) 2025.08.20
[CSS] #08 스타일 속성, CSS 글꼴 & 폰트 속성 완전 정리! font-family부터 웹폰트 사용법까지  (0) 2025.08.19
[CSS] #07 스타일 속성, CSS 배경 속성 완전 정리! background-color부터 background-image까지 한 번에 끝내기  (4) 2025.08.17
[CSS] #06 스타일 속성, CSS 박스 모델 완벽 정복! margin, padding, border 차이와 활용법  (6) 2025.08.16
'Web Front/CSS' 카테고리의 다른 글
  • [CSS] #10 Flexbox & Grid, CSS Flexbox 완벽 가이드! 레이아웃 정렬부터 축 개념까지 쉽게 배우기
  • [CSS] #09 레이아웃 구성, CSS 레이아웃 구성 완전 정복! display, position, float까지 핵심 속성 정리
  • [CSS] #08 스타일 속성, CSS 글꼴 & 폰트 속성 완전 정리! font-family부터 웹폰트 사용법까지
  • [CSS] #07 스타일 속성, CSS 배경 속성 완전 정리! background-color부터 background-image까지 한 번에 끝내기
TOASTDEV
TOASTDEV
인스턴트 코딩 #토스트데브 #토스트뎁 #코딩공부 #개발입문
  • TOASTDEV
    토스트뎁
    TOASTDEV
    • 분류 전체보기 (115) N
      • 알쓸신잡 (34)
        • 코딩에 대하여 (13)
        • 컴퓨터에 대하여 (12)
        • IT 국내외 소식 (9)
      • Web Front (17) N
        • HTML (6)
        • CSS (11) N
        • JavaScript (0)
      • Programming (28)
        • PHP (28)
      • Database (12)
        • SQL (12)
        • MySQL (0)
      • Server (24)
        • Linux (24)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Youtube Toastdev
    • Naver Blog
  • 공지사항

    • [유튜브] 유튜브 영상 업로드 안내
  • 인기 글

  • 태그

    웹개발
    웹디자인기초
    SQL기초
    프론트엔드
    HTML
    ubuntu서버
    코딩입문
    서버보안
    ubuntuserver
    리눅스기초
    리눅스보안
    데이터분석
    sql
    html기초
    데이터베이스
    웹프로그래밍
    컴퓨터기초
    SQL문법
    php입문
    php기초
    SQL강의
    프론트엔드기초
    PHP문자열
    서버입문
    php문법
    php
    웹개발기초
    웹개발입문
    css기초
    서버관리
  • 최근 댓글

  • 최근 글

  • 전체
    오늘
    어제
  • 반응형
  • hELLO· Designed By정상우.v4.10.3
TOASTDEV
[CSS] #11 Flexbox & Grid, CSS Grid 기초 완전 정복! 2차원 레이아웃 설계를 위한 핵심 속성 정리
상단으로

티스토리툴바