CSS Grid는 웹 페이지의 레이아웃을 2차원 그리드 형태로 구성할 수 있도록 해주는 강력한 CSS 기능입니다. Flexbox가 주로 한 줄 또는 한 열 방향의 레이아웃에 특화되어 있다면, Grid는 행과 열을 동시에 관리하여 복잡하고 유연한 레이아웃을 구현하는 데 탁월합니다.
Grid 컨테이너와 아이템
Grid 컨테이너: Grid 레이아웃을 적용할 부모 요소입니다. display: grid; 속성을 사용하여 설정합니다.
Grid 아이템: Grid 컨테이너의 자식 요소입니다.
주요 Grid 속성
Grid 컨테이너 속성
grid-template-columns: 열의 크기와 개수를 설정합니다.
grid-template-rows: 행의 크기와 개수를 설정합니다.
grid-template-areas: 영역 이름을 지정하여 레이아웃을 정의합니다.
grid-gap: 행과 열 사이의 간격을 설정합니다.
grid-column-gap: 열 사이의 간격을 설정합니다.
grid-row-gap: 행 사이의 간격을 설정합니다.
justify-content: 주축(가로) 방향으로 아이템을 정렬합니다.
align-items: 측축(세로) 방향으로 아이템을 정렬합니다.
place-items: justify-content와 align-items를 한 번에 설정합니다.
Grid 아이템 속성
grid-column-start: 아이템이 시작될 열을 지정합니다.
grid-column-end: 아이템이 끝나는 열을 지정합니다.
grid-row-start: 아이템이 시작될 행을 지정합니다.
grid-row-end: 아이템이 끝나는 행을 지정합니다.
grid-column: grid-column-start와 grid-column-end를 간단하게 표현합니다.
grid-row: grid-row-start와 grid-row-end를 간단하게 표현합니다.
grid-area: grid-template-areas에서 지정한 영역 이름을 사용하여 아이템을 배치합니다.