카테고리 없음

Grid 그리드

SOME코딩 2022. 2. 25. 12:05

<Grid System>

container, column, gutter

container: 그리드 시스템이 적용되는 전체범위

cell: 한 칸

gutter: 간격조정을 위한 여백  column-gaprow-gap, or gap properties.

track: 행한줄, 열 한줄

grid area: cell합쳐진 영역

 

fr 단위는 그리드 컨테이너에 남아 있는 사용 가능한 공간의 일정 비율

 

grid-line(1부터 시작)

.container {

border: 5px solid pink;

display: grid;

 

/grid-template-columns: 40% 60%;/ 열의 너비

grid-template-columns: 4fr 6fr;  / repeat(4, 1fr); = 1fr 1fr 1fr 1fr;

grid-auto-rows: 300px; minmax(200px, auto); 행의 높이

grid-grap: 1rem; item간의 공간

grid-template-columns: 150px 1fr;

}

.item {

justify-self: start;

align-self: center;

grid-column: 1/4; 1부터 4까지 공간차지

grid-row: 2/4;

}

  1. 명시적 속성: grid-template-rows, grid-template-columns, and grid-template-areas
  2. 암시적 속성: grid-auto-rows, grid-auto-columns, and grid-auto-flow

container, item

 

라인을 이용한 아이템 배치 .box1=item

그리드 왼쪽의 기준이 아닌 오른쪽으로 기준을 하고싶다면, grid-column-start 와 grid-column-end를 음수로 설정하시면 됩니다. 예를들어, -1로 오른쪽 첫뻔재 세로선을 지정하실 수 있습니다.

그리드 선의 시작과 끝 위치를 기준으로 그리드 항목을 정의하는 대신, span을 이용하여 열(column)의 넓이를 지정할 수 있습니다. span은 양수만 설정 가능합니다. 예를 들어, grid-column-end: span 2;

 

매번 grid-column-start와 grid-column-end를 입력하는 것은 불편합니다. 다행스럽게, grid-column는 한번에 입력가능한 단축해서 설정으로, /(슬래쉬)로 구분됩니다.

예를 들면, grid-column: 2 / 4;는 그리드 항목을 두번째 수직선에서 네번째 수직선까지로 설정합니다.

.box1 {
  grid-column-start: 1;
  grid-column-end: 4;
  grid-row-start: 1;
  grid-row-end: 3;
}

 

#garden {
  display: grid;
  grid-template-columns: 20% 20% 20% 20% 20%;
  grid-template-rows: 20% 20% 20% 20% 20%;
}

#water {
  grid-row-start: 3;
}

grid-column와 grid-row 모두를 입력하는게 너무 많은경우, 다른 속성을 이용하여 줄일 수 있습니다. grid-area은 /(슬래쉬)로 구분지어 grid-row-start, grid-column-start, grid-row-end, grid-column-end순으로 입력 가능합니다.

한가지로 예로 다음과 같습니다. grid-area: 1 / 1 / 3 / 6;

 

그리드 요소들이 grid-area, grid-column, grid-row, 기타 등을 사용하지 않고, 표시될 경우 소스코드에 기입된 순서대로 표기됩니다. table 레이아웃에 비해 grid 시스템의 장점인 order 속성을 이용하면 이를 재정의가 가능합니다.

기본적으로, 그리드의 모든 요소들은 order의 값이 0이지만, z-index와 같이 양수와 음수의 값 모두 설정이 가능합니다.

 

grid-template은 grid-template-rows와 grid-template-columns를 조합한 단축 속성입니다.

예를 들어, grid-template: 50% 50% / 200px;은 각각 50% 인 두개의 행(row)과 200px 너비의 한개의 열(column)의 그리드를 생성합니다.

 

grid-template-areas

#page {
  display: grid;
  width: 100%;
  height: 250px;
  grid-template-areas: "head head"
                       "nav  main"
                       "nav  foot";
  grid-template-rows: 50px 1fr 30px;
  grid-template-columns: 150px 1fr;
}

https://developer.mozilla.org/ko/docs/Web/CSS/CSS_Grid_Layout

그리드 게임 https://cssgridgarden.com/#ko