[css] Grid 한 눈에 정리하기
🏃🏻♂️ intro
grind는 행과 열 두 방향(2차원) 레이아웃 시스템이다.
📦 컨테이너 속성
display
display
: 그리드 컨테이너를 정의grid
: Block 특성의 그리드 컨테이너 정의inline-grid
: Inline 특성의 그리드 컨테이너 정의
grid-template(명시적 트랙)
-
grid-template-rows
: 명시적 행(track)의 크기를 정의1행 크기, 2행 크기, ...
단위 : px, %, fr
-
grid-template-columns
: 명시적 열(track)의 크기를 정의1열 크기, 2열 크기, ...
단위 : px, %, fr
-
grid-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(암시적 트랙)
-
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>;
gap
row-gap(grid-row-gap)
: 행과 행 사이의 간격을 정의column-gap(grid-column-gap)
: 열과 열 사이의 간격을 정의gap(grid-gap)
:xxxx-gap
의 단축 속성
정렬
content
-
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>; }
items
아이템의 가로, 세로의 크기가 셀(트랙)보다 작을 때, 셀 안에서 아이템의 정렬을 정의
셀 안에서는 아이템은 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
grid-row-start
: 그리드 아이템의 행 시작 위치 지정grid-row-end
: 그리드 아이템의 행 끝 위치 지정grid-row
:grid-row-start
와grid-row-end
의 단축 속성
grid-column
grid-column-start
: 그리드 아이템의 열 시작 위치 지정grid-column-end
: 그리드 아이템의 열 끝 위치 지정grid-column
:grid-column-start
와grid-column-end
의 단축 속성
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-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
속성으로 정의한 명시적 트랙(셀)의 외부에 배치되는 트랙을 암시적 트랙(셀)이라한다.
📚 참고사이트
Author And Source
이 문제에 관하여([css] Grid 한 눈에 정리하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@younoah/css-grid-cheatsheet저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)