Computer Science/CSS
[CSS ] 06. Grid 레이아웃
GWDEVEL
2026. 2. 7. 19:04
[CSS ] 06. Grid 레이아웃
1. Grid 레이아웃이란?
Grid는 행(Row)과 열(Column)을 기준으로 요소를 배치하는 레이아웃 방식이다.
Flexbox가 한 방향 정렬에 초점을 둔다면, Grid는 화면을 격자로 나누어 배치하는 데 사용된다.
2. Grid 기본 구조
부모 요소에 grid를 적용하여 레이아웃을 구성한다.
.container {
display: grid;
}
- grid 컨테이너 : display: grid가 적용된 부모 요소
- grid 아이템 : 컨테이너 내부의 자식 요소
3. grid-template-columns
열(Column)의 개수와 크기를 정의한다.
.container {
grid-template-columns: 100px 100px 100px;
}
비율 단위(fr)를 사용할 수도 있다.
.container {
grid-template-columns: 1fr 2fr 1fr;
}
4. grid-template-rows
행(Row)의 개수와 크기를 정의한다.
.container {
grid-template-rows: 100px 200px;
}
5. gap
행과 열 사이의 간격을 설정한다.
.container {
gap: 20px;
}
방향별로 설정할 수도 있다.
.container {
row-gap: 10px;
column-gap: 20px;
}
6. grid-column
아이템이 차지할 열 범위를 지정한다.
.item {
grid-column: 1 / 3;
}
1번 열부터 3번 열 앞까지 차지한다.
7. grid-row
아이템이 차지할 행 범위를 지정한다.
.item {
grid-row: 1 / 2;
}
8. grid-area
행과 열 범위를 한 번에 지정한다.
.item {
grid-area: 1 / 1 / 3 / 3;
}
순서: row-start / column-start / row-end / column-end
9. grid-template-areas
영역 이름을 사용하여 레이아웃을 구성할 수 있다.
.container {
grid-template-areas:
"header header"
"sidebar content"
"footer footer";
}
아이템에 영역 이름을 지정한다.
.header {
grid-area: header;
}
10. 정리
- Grid는 행과 열 기반 레이아웃이다
- grid-template로 전체 구조를 정의한다
- gap으로 간격을 조절한다
- 영역 단위 배치가 가능하다