
grind는 행과 열 두 방향(2차원) 레이아웃 시스템이다.
display : 그리드 컨테이너를 정의grid : Block 특성의 그리드 컨테이너 정의inline-grid : Inline 특성의 그리드 컨테이너 정의grid-template-rows : 명시적 행(track)의 크기를 정의
1행 크기, 2행 크기, ... 단위 : px, %, frgrid-template-columns : 명시적 열(track)의 크기를 정의
1열 크기, 2열 크기, ... 단위 : px, %, frgrid-template-area : 영역의 이름을 참조해 템플릿 생성
.container {
display: grid;
grid-template-rows: repeat(3, 100px);
grid-template-columns: repeat(3, 1fr);
grid-template-areas: /* 그리드 컨테이너에서 area 정의*/
"header header header"
"main main aside"
"footer footer footer";
}
/* 그리드 아이템에서 어떤 area에 속하는지 정의*/
header { grid-area: header; }
main { grid-area: main; }
aside { grid-area: aside; }
footer { grid-area: footer; }grid-template : grid-template-rows, grid-template-columns , grid-template-areas의 단축 속성
grid-template: <grid-template-rows> / <grid-template-columns>;
grid-template: <grid-template-areas>;
grid-template:
[1행시작선이름] "AREAS" 행너비 [1행끝선이름]
[2행시작선이름] "AREAS" 행너비 [2행끝선이름]
/ <grid-template-columns>;grid : grid-template-xxx 와 grid-auto-xxx 의 단축 속성
grid: <grid-template>;
grid: <grid-template-rows> / <grid-auto-flow> <grid-auto-columns>;
grid: <grid-auto-flow> <grid-auto-rows> / <grid-template-columns>;grid-auto-rows : 암시적 행(track)의 크기를 정의
grid-template-rows)와 동일하게 사용한다.grid-auto-columns : 암시적 열(track)의 크기를 정의
grid-template-columns)와 동일하게 사용한다.grid-auto-flow : 자동 배치 알고리즘 방식을 정의
row : 각 행 축을 따라 차례로 배치 (기본값)column : 각 열 축을 따라 차례로 배치row-dense : 각 행 축을 따라 차례로 배치, 빈 영역을 메움column-dense : 각 열 축을 따라 차례로 배치, 빈 영역을 메움grid : grid-template-xxx 와 grid-auto-xxx 의 단축 속성
grid: <grid-template>;
grid: <grid-template-rows> / <grid-auto-flow> <grid-auto-columns>;
grid: <grid-auto-flow> <grid-auto-rows> / <grid-template-columns>;row-gap(grid-row-gap) : 행과 행 사이의 간격을 정의column-gap(grid-column-gap) : 열과 열 사이의 간격을 정의gap(grid-gap) : xxxx-gap 의 단축 속성justify-content : 그리드 컨텐츠를 수평(행 축) 정렬
normal : stretch 와 같다. (기본값)start : 시작점(왼쪽) 정렬end : 끝점(오른쪽쪽) 정렬center : 수평 가운데 정렬space-around : 각 행 좌우에 여백을 고르게 정렬space-between : 첫 행은 시작점에, 끝 행은 끝점에 정렬되고 나머지는 여백이 고르게 정렬space-evenly : 모든 여백을 고르게 정렬stretch : 열 축을 채우기 위해 그리드 컨텐츠를 늘림align-content : 그리드 컨텐츠를 수직(열 축) 정렬
normal : stretch 와 같다. (기본값)start : 시작점(위쪽) 정렬end : 끝점(아래쪽) 정렬center : 수직 가운데 정렬space-around : 각 행 위아래 여백을 고르게 정렬space-between : 첫 행은 시작점에, 끝 행은 끝점에 정렬되고 나머지는 여백이 고르게 정렬space-evenly : 모든 여백을 고르게 정렬stretch : 열 축을 채우기 위해 그리드 컨텐츠를 늘림place-contetn : align-content 와 justify-content 의 단축 속성
.container {
place-content: <align-content> <justify-content>;
}아이템의 가로, 세로의 크기가 셀(트랙)보다 작을 때, 셀 안에서 아이템의 정렬을 정의
셀 안에서는 아이템은 1개이므로 space-xxx 계열 값은 존재하지 않는다.
align-items : 그리드 아이템들을 수직(열 축) 정렬normal : stretch 와 같다. (기본값)start : 시작점(위쪽) 정렬end : 끝점(아래쪽) 정렬center : 수직 가운데 정렬stretch : 열 축을 채우기 위해 그리드 컨텐츠를 늘림justify-items : 그리드 아이템들을 수평(행 축) 정렬normal : stretch 와 같다. (기본값)start : 시작점(왼쪽) 정렬end : 끝점(오른쪽쪽) 정렬center : 수평 가운데 정렬stretch : 열 축을 채우기 위해 그리드 컨텐츠를 늘림place-items : align-items 와 justify-items 의 단축 속성.container {
display: grid;
grid-template-rows: repeat(2, 1fr);
grid-template-columns: repeat(3, 1fr);
}
.item:nth-child(1) {
grid-row-start: 1;
grid-row-end: 3;
grid-column-start: 2;
grid-column-end: 4;
}
.item:nth-child(1) {
/* Row 1번에서 3번까지 */
grid-row-start: 1;
grid-row-end: span 2;
}
grid-row-start : 그리드 아이템의 행 시작 위치 지정grid-row-end : 그리드 아이템의 행 끝 위치 지정grid-row : grid-row-start 와 grid-row-end 의 단축 속성grid-column-start : 그리드 아이템의 열 시작 위치 지정grid-column-end : 그리드 아이템의 열 끝 위치 지정grid-column : grid-column-start 와 grid-column-end 의 단축 속성.container {
display: grid;
grid-template-rows: repeat(3, 100px);
grid-template-columns: repeat(3, 1fr);
grid-template-areas: /* 그리드 컨테이너에서 area 정의*/
"header header header"
"main main aside"
"footer footer footer";
}
/* 그리드 아이템에서 어떤 area에 속하는지 정의*/
header { grid-area: header; }
main { grid-area: main; }
aside { grid-area: aside; }
footer { grid-area: footer; }
grid-area : 영역 이름을 설정하거나, grid-row 와 grid-column 의 단축 속성justify-self : 단일 그리드 아이템을 수평(행 축) 정렬
normal : stretch 와 같다. (기본값)start : 시작점(왼쪽) 정렬end : 끝점(오른쪽쪽) 정렬center : 수평 가운데 정렬stretch : 열 축을 채우기 위해 그리드 컨텐츠를 늘림align-self : 단일 그리드 아이템을 수직(열 축) 정렬
normal : stretch 와 같다. (기본값)start : 시작점(위쪽) 정렬end : 끝점(아래쪽) 정렬center : 수직 가운데 정렬stretch : 열 축을 채우기 위해 그리드 컨텐츠를 늘림place-self : align-self 와 justify-self 의 단축 속성
order : 그리드 아이템의 배치 순서를 지정z-index : 그리드 아이템의 쌓이는 순서를 지정grid-template-row 와 grid-template-column 속성으로 정의한 명시적 트랙(셀)의 외부에 배치되는 트랙을 암시적 트랙(셀)이라한다.