지 구 여 행

[CSS]그리드 컨테이너(grid container) 속성 본문

개인 공부/CSS

[CSS]그리드 컨테이너(grid container) 속성

COSMOSUNION 2022. 10. 11. 22:41

 

Grid container 속성

 


 

Grid container에서 사용 가능한 속성 정리

 

그리드 트랙

그리드 트랙(Grid Track)은 그리드에 그려진 두 라인 사이의 공간을 나타냅니다. grid-template-rows  grid-template-columns 속성으로 그리드 트랙(행(rows)과 열(columns))을 정의할 수 있습니다. 값을 정의하지 않을 경우 grid item의 크기는 font-size에 비례합니다.

px, em, %, fr(fraction, 공간비율)등의 단위를 사용합니다. repeat() , minmax() , fit-content() 함수도 사용할 수 있습니다.

  • grid-template-rows 
  • grid-template-columns  
  • grid-template-areas : 지정된 그리드 영역 이름(grid-area; grid item에서 정의)을 참조해 그리드 템플릿 생성
  • grid-template : grid-template-rows , grid-template-columns , grid-template-areas 의 단축 속성
/* 너비가 200px인 4개의 행, 열너비 100px인 4개의 열로 이루어진 그리드 생성 */
.grid-container {
  display: grid;
  grid-template-rows: 200px 200px 200px 200px;
  grid-template-columns: 100px 100px 100px 100px;
}

/* repeat()함수를 이용하여 위와 동일한 그리드를 생성 */
.grid-container {
  display: grid;
  grid-template-rows: repeat(4, 200px);
  grid-template-columns: repeat(4, 100px);
}

/* grid-template :
"그리드영역 이름" height(row) / width(column) */
.grid-container {
  display: grid;
  grid-template-rows: 100px repeat(2, 200px) 100px;
  grid-template-columns: repeat(4, 100px);
  grid-template:
    "header header header header" 1fr
    "content content content nav" 2fr
    "content content content nav" 2fr
    "footer footer footer footer" 1fr / 1fr 1fr 1fr 1fr
}

 

 

그리드 갭

행과 행 사이의 공간을 row gap, 열과 열 사이의 공간을 column gap으로 정의합니다.

출처 : https://www.w3schools.com/css/css_grid.asp

  • row-gap 
  • column-gap  
  • gap : row-gap과 column-gap의 단축 속성

 

 

그리드 정렬

전체 grid container 안에서 grid item의 정렬방식을 결정합니다. flexbox 레이아웃의 justify-content, align-items와 같이 아이템들의 전체 정렬 방식을 정의하는 기능을 합니다. 그러므로 그리드 컨텐츠(grid item들의 합)의 수평(가로)/수직(세로) 크기가 컨테이너의 것보다 작아야 합니다.

  • justify-content : 컨테이너 안에서 grid item들의 수평(가로) 정렬하는 방식 결정
  • align-content : 컨테이너 안에서 grid item들의 수직(세로) 정렬하는 방식 결정
  • place-content : align-content justify-content (단축 속성)

 

 

아이템 정렬

각 cell 안에서 grid item의 정렬 방식을 결정합니다. 그러므로 grid item의 크기가 자신이 속한 그리드 트랙(열/행)보다 작아야 합니다.

  • justify-items : 각 cell 안에서 grid item의 수평(가로) 정렬하는 방식 결정
  • align-items : 각 cell 안에서 grid item의 수직(세로) 정렬하는 방식 결정
  • place-items : align-items jutify-items (단축 속성)
/* 너비가 100px인 4개의 행, 열너비 100px인 4개의 열로 이루어진 그리드 생성 */
.grid-container {
  display: grid;
  grid-template-rows: repeat(4, 200px);
  grid-template-columns: repeat(4, 100px);
  justify-items: center;
  align-items: stretch
}

/* place-items 단축 속성을 이용하여 위와 동일한 그리드를 생성 */
.grid-container {
  display: grid;
  grid-template-rows: repeat(4, 200px);
  grid-template-columns: repeat(4, 100px);
  place-items: stretch center;
}

 

 

아이템 자동 정렬

grid container에서 지정한 그리드 트랙보다 더 많은 content가 존재할 경우, 나머지 grid item들의 크기를 결정합니다.

 

  • grid-auto-rows 
  • grid-auto-columns 
  • grid-auto-flow : 나머지 grid item의 정렬 방향을 결정
    flexbox 레이아웃에서 flex-direction과 같은 기능을 합니다. 
    • row
    • row dense
    • column
    • column dense

 

 

 

 

 

※ 참고자료

1. MDN web docs : https://developer.mozilla.org/ko/docs/Web/API/Canvas_API

2. 노마드코더/바닐라JS로 그림 앱 만들기 : https://nomadcoders.co/javascript-for-beginners-2

3. HEROPY Tech : https://heropy.blog/2019/08/17/css-grid/

'개인 공부 > CSS' 카테고리의 다른 글

[CSS]그리드 아이템(grid item) 속성  (0) 2022.10.11
[CSS] 그리드 레이아웃(Grid Layout)  (0) 2022.10.11
[CSS] Flex item 속성  (0) 2022.10.09
[CSS] Flex container 속성  (0) 2022.10.09
[CSS] 플렉스박스(Flexbox) 개념 이해  (0) 2022.10.04
Comments