반응형
지금까지 Flexbox로 멋진 정렬과 반응형 레이아웃을 만들었다면,
이제는 2차원(행 + 열) 레이아웃을 더 강력하게 다룰 수 있는
CSS Grid의 차례입니다.
Flex가 “흐름 기반”이라면,
Grid는 “정해진 틀 기반”입니다.
그만큼 레이아웃 설계가 더 직관적이고 강력해져요!
✅ display: grid란?
.container {
display: grid;
}
이 한 줄로 Grid 컨테이너가 만들어집니다.
그리고 이 안에 있는 자식 요소들은 **행(row)과 열(column)**을 기준으로 정렬됩니다.
🧩 기본 속성 정리
속성 | 설명 |
grid-template-columns | 열(column) 개수 및 너비 설정 |
grid-template-rows | 행(row) 개수 및 높이 설정 |
gap | 셀 사이 간격 (row + column 동시에 가능) |
place-items | 한 줄로 정렬 설정 (align-items + justify-items) |
🎨 예시 1 – 3열 그리드 만들기
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 20px;
}
<div class="container">
<div class="item">A</div>
<div class="item">B</div>
<div class="item">C</div>
</div>
📐 단위를 조절해볼까요?
grid-template-columns: 200px 1fr 2fr;
- 첫 번째 열은 고정 너비
- 두 번째는 남은 공간의 1
- 세 번째는 그보다 2배
→ 비율 + 고정값 조합이 가능한 게 Grid의 강점!
🌀 반복되는 열은 repeat()로 간단하게
grid-template-columns: repeat(3, 1fr);
→ 1fr 1fr 1fr 과 같지만 더 짧고 가독성 좋음
🧭 Flex와 Grid의 결정적 차이
비교 항목 | Flexbox | Grid |
레이아웃 구조 | 흐름 기반 | 격자 기반 |
방향성 | 1차원 (row or column) | 2차원 (row + column) |
위치 지정 | 순서 기반 | 위치 직접 지정 가능 |
대표 용도 | 정렬, 메뉴, 버튼 줄 | 전체 레이아웃 구성, 복잡한 배치 |
반응형
'HTML, CSS' 카테고리의 다른 글
grid-column & grid-row 완전정복 – 셀 병합의 마법 (0) | 2025.06.07 |
---|---|
grid-area & template-areas 완전정복 – 코드로 레이아웃 구조를 그려보자! (0) | 2025.06.06 |
실전 예제 – Flexbox로 반응형 카드 UI 만들기 (0) | 2025.06.04 |
gap 완전정복 – margin 없이 깔끔하게 간격 조절하는 법 (0) | 2025.06.03 |
flex-grow, shrink, basis 완전정복 – 공간 나누기의 핵심 공식 (0) | 2025.06.02 |