Grid

Grid 컨테이너 선언

display 속성을 Grid나 inline-grid으로 설정합니다.

.parent {
  display: grid; /* BFC */
  display: inline-grid; /* IFC */
}

Grid 컨테이너 속성

grid-template-rows, grid-template-columns

grid-template-rows 속성은 행을 정의하고, grid-template-columns은 열을 정의합니다.

.wrapper {
  display: grid;
  grid-template-columns: 100px 100px 100px;
  grid-template-columns: repeat(3, 100px); /* 위 코드와 동일 */
  grid-template-rows: 50px 50px;

  grid-template: 50px 50px / 100px 100px 100px; /* rows / columns 로 축약가능 */
}

grid-template-rows에 대해 두 개의 값을 지정 했으므로 50px높이의 두 개의 행을 얻고 grid-template-columns에 대해 세 개의 값을 지정 했으므로 100px 너비의 세 개의 열을 얻었습니다(3 X 2).

grid-gap

요소들 사이의 간격을 지정합니다.

Gird 요소 속성

grid-column, grid-row

이 CSS 속성들은 해당 요소의 위치를 ​​지정하고 크기를 조정합니다.

.item1 {
  grid-column-start: 1; /* 1번째 column에서 시작해서 */
  grid-column-end: 4; /* 4번째 column전까지 차지 */
  grid-column: 1 / 4; /* start / end 로 축약가능 */
}

.item2 {
  grid-row-start: 2; /* 2번째 row에서 시작해서 */
  grid-row-end: 4; /* 4번째 row전까지 차지 */
  grid-row: 2 / 4; /* grid-column과 동일 */
}

.item3 {
  grid-row: 2 / span 2; /* span을 사용하면 span뒤에 나온 숫자만큼(2번째 row부터 2칸의 row) 차지 */
}

.item4 {
  grid-area: 1 / span 3 / 2 / span 2; /* grid-row-start / grid-column-start / grid-row-end  / grid-cloumn-end를 축약 */
}

order

해당 CSS 속성은 해당 요소의 배치 순서를 지정합니다.

기본값은 0이며 값이 클수록 뒤에 배치됩니다.

grid 특징

fr

fr이란 그리드 컨테이너내 남은 공간 비율 단위입니다.

.grid {
  display: grid;
  grid-template-columns: auto 100px 1fr 2fr;
}

3번째 열은 남은 공간중 1/3을 차지하며 4번째 열은 2/3을 차지합니다.

Last updated