grid란 ‘격자’라는 뜻이며, 사전적 의미는 ‘바둑판 눈금과 같은 동일한 크기의 정방형 혹은 준 정방형 배열’입니다.
flexbox layout보다 좀더 복잡한 레이아웃을 만들때 grid layout을 사용 할 수 있습니다.
grid layout은 행과 열이 있기 때문에 플로트나 위치지정 (position) 없이도 쉽게 레이아웃을 디자인 할 수 있습니다.
ex )
gird는 기본적으로 flex와 동일하게 컨테이너와 아이템으로 구분되어있습니다. ( 컨테이너는 아이템을 wrapping하고 있는 부모입니다. )
1~9를 포함하고 있는 붉은 테두리 - container 1~9 - 각각의 item
그리드 컨테이너의 속성과 의미
1 2 3 4 5 6 7 8 9 10 11 12
display: 그리드를 정의합니다. grid-template: 아래의 grid-template-***의 속성을 단축해서 정의합니다. grid-template-rows: 그리드 행의 크기를 정의합니다. grid-template-columns: 그리드 열의 크기를 정의합니다. grid-template-areas: 그리드 영역의 이름을 생성합니다. gap(grid-gap): 아래의 ***-gap의 속성을 단축해서 정의합니다. row-gap(grid-row-gap): 행 사이의 간격값을 정의합니다. column-gap(grid-column-gap): 열 사이의 값을 정의합니다. place-content: align-content와 justify-content의 단축 속성 ex) place-content: center === align-conten: center && justify-content: center place-item: align-item justify-item 단축 속성 ex) place-item: center === align-item: center && justify-item: center
그리드 아이템의 속성과 의미
1 2 3 4 5 6 7 8 9 10 11 12
grid-row: grid-row-xxx의 단축 속성(행 시작/끝 위치) grid-row-start: 그리드 아이템(Item)의 행 시작 위치 지정 grid-row-end: 그리드 아이템의 행 끝 위치 지정 grid-column: grid-column-xxx의 단축 속성(열 시작/끝 위치) grid-column-start: 그리드 아이템의 열 시작 위치 지정 grid-column-end: 그리드 아이템의 열 끝 위치 지정 grid-area: 영역(Area) 이름을 설정하거나, grid-row와 grid-column의 단축 속성 place-self: align-self와 justify-self의 단축 속성 align-self: 단일 그리드 아이템을 수직(열 축) 정렬 justify-self: 단일 그리드 아이템을 수평(행 축) 정렬 order: 그리드 아이템의 배치 순서를 지정 z-index: 그리드 아이템의 쌓이는 순서를 지정