본문 바로가기
[부트캠프] 풀스택 개발자/HTML 기초

[HTML5&CSS3] Grid Layout

by 다니엘(Daniel) 2026. 1. 21.
반응형

[HTML5&CSS3] 

Grid Layout

(자바 풀스택 개발자를 위한 첫걸음)

 

 

 

📦 CSS Grid Layout 완전 정복

grid-template으로 카드 그리드 만들기

웹 서비스를 만들다 보면 카드형 UI를 반드시 만나게 됩니다.
게시판 목록, 쇼핑몰 상품, 관리자 대시보드 위젯까지
👉 대부분 Grid Layout으로 구성됩니다.

이 글에서는 CSS Grid의 핵심 속성 grid-template을 중심으로
카드 그리드를 직접 만들어보며 이해해봅니다.


1️⃣ Grid Layout이란?

CSS Grid는 행(row)과 열(column)을 동시에 설계하는 2차원 레이아웃 시스템이다.

 

구분 Flexbox Grid
방향 1차원 ✅ 2차원
카드 배치 불편 ✅ 매우 편함
전체 레이아웃 제한적 ✅ 최적

📌 카드 목록 레이아웃 = Grid


2️⃣ grid-template 핵심 개념

✅ grid-template-columns

열(column)의 개수와 너비를 정의

✅ grid-template-rows

행(row)의 개수와 높이를 정의

✅ 자주 쓰는 단위

  • px : 고정 크기
  • fr : 비율 단위
  • repeat() : 반복
  • minmax() : 최소 / 최대

🧪 예제 1. 가장 기본적인 카드 그리드 (3열)

📁 파일 구조

example1-basic/
 ├─ index.html
 └─ style.css

📄 index.html

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>기본 카드 그리드</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>

  <div class="grid">
    <div class="card">카드 1</div>
    <div class="card">카드 2</div>
    <div class="card">카드 3</div>
    <div class="card">카드 4</div>
    <div class="card">카드 5</div>
  </div>

</body>
</html>

🎨 style.css

.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  padding: 20px;
}

.card {
  background-color: #f2f2f2;
  padding: 40px;
  text-align: center;
  border-radius: 8px;
}

🔍 코드 설명

  • repeat(3, 1fr) → 같은 너비 카드 3개
  • 카드 수가 늘어나면 자동 줄바꿈

💡 활용 예

  • 게시판 목록
  • 공지사항 카드

🧪 예제 2. 고정 폭 카드 레이아웃

📁 파일 구조

example2-fixed/
 ├─ index.html
 └─ style.css

📄 index.html

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>고정 폭 카드</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>

  <div class="grid">
    <div class="card">고정 카드 1</div>
    <div class="card">고정 카드 2</div>
    <div class="card">고정 카드 3</div>
    <div class="card">고정 카드 4</div>
  </div>

</body>
</html>

🎨 style.css

.grid {
  display: grid;
  grid-template-columns: 200px 200px 200px;
  gap: 16px;
}

💡 활용 예

  • 관리자 페이지 메뉴
  • 대시보드 위젯

🧪 예제 3. 비율 기반 레이아웃 (메인 + 사이드)

📁 파일 구조

example3-ratio/
 ├─ index.html
 └─ style.css

📄 index.html

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>비율 Grid</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>

  <div class="grid">
    <div class="card">메인 콘텐츠</div>
    <div class="card">사이드바</div>
  </div>

</body>
</html>

🎨 style.css

.grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 20px;
}

🧪 예제 4. minmax 반응형 카드

🎨 style.css

.grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(150px, 1fr));
  gap: 20px;
}

💡 활용 예

  • 모바일 대응 카드 UI

🧪 예제 5. 실무 핵심 카드 그리드 (auto-fill)

🎨 style.css

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

🔥 실무 포인트

  • 화면 크기에 따라 카드 개수 자동 조절
  • 쇼핑몰, 포트폴리오 필수 패턴

🧪 예제 6. 행(row)까지 제어하는 카드 그리드

🎨 style.css

.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 150px);
  gap: 20px;
}

7️⃣ Grid vs Flex (면접 한 줄 정리)

  • 카드 목록 👉 Grid
  • 한 줄 정렬 👉 Flex
  • 전체 레이아웃 👉 Grid

✅ 백엔드 개발자 관점 한 줄 정리

Grid Layout은 백엔드에서 내려준 리스트 데이터를 프론트엔드에서 가장 안정적이고
예측 가능하게 표현하는 레이아웃 도구다.

 

 

반응형

'[부트캠프] 풀스택 개발자 > HTML 기초' 카테고리의 다른 글

[HTML5&CSS3] 반응형 웹 개념  (0) 2026.01.23
[HTML5&CSS3] Grid vs Flex  (0) 2026.01.22
[HTML5&CSS3] Flexbox 실전 패턴  (0) 2026.01.20
[HTML5&CSS3] Flexbox 기본  (0) 2026.01.19
[HTML5&CSS3] z-index 이해  (0) 2026.01.18