Advanced CSS Grid

2518 ワード

grid-template-areas*
 각 영역(Grid Area)에 이름을 붙이고, 그 이름을 이용해 배치하는 방법
 각자 차지하는 셀의 개수만큼 해당 위치에 이름 써주기!
 각 셀마다 공백 하나씩 넣어서 구분하기..
 빈칸은 마침표 또는 "none"
  ex) grid-template-areas:
                "header  header  header"
                 "  a     main     b   "
                 "  .       .      .   "
                "footer  footer  footer";
 각 영역의 이름은 해당 아이템 엘리먼트에 grid-area 속성으로 이름 지정
  ex) .header { grid-area: header; }
      .sidebar-a { grid-area: a; }
      /* 이름 값에 따옴표 없는 것에 주의 */
      
 + 엘리먼트를 겹칠 때 +
   grid 라인 이름과 grid-area 속성 이용하기

*justify items*
 가로 방향 정렬(row 축)
 start   : 왼쪽에 정렬
 end     : 오른쪽에 정렬
 center  : 중앙에 정렬
 stretch : 영역 채우기 위해 위아래로 쭉 늘림

*justify-content*
 item그룹 가로 정렬
 grid item들의 너비를 모두 합한 값이 grid container의 너비보다
 작을 때 grid item들을 통째로 정렬
 start         : 왼쪽 정렬
 end           : 오른쪽 정렬
 center        : 수평 중앙 정렬
 stretch       : 크기를 늘려 수평으로 확장
 space-around  : 각면에 균일한 공간 포함하고 첫 엘리먼트 앞과
                 마지막 엘리먼트 뒤에 있는 엘리먼트 사이의 공간이 두배
 space-between : item사이에 균일한 공간 포함하고 양끝에 공백없이 
 space-evenly  : item사이와 양끝에 균일한 공간으로 배치
 
*align-items*
 세로 방향 정렬(column 축)
 start   : 위쪽 정렬
 end     : 아래쪽 정렬  
 center  : 중앙 정렬
 stretch : 쭉 늘림
  
*align-content*
 item그룹 세로 정렬
 grid item들의 높이를 모두 합한 값이 grid container의 높이보다
 작을 때 grid item들을 통째로 정렬
 start         : 위쪽 정렬
 end           : 아래쪽 정렬
 center        : 수직 중앙 정렬
 stretch       : 크기를 늘려 수직으로 확장
 space-around  : 각면에 균일한 공간 포함하고 첫 엘리먼트 앞과
                 마지막 엘리먼트 뒤에 있는 엘리먼트 사이의 공간이 두배
 space-between : item사이에 균일한 공간 포함하고 양끝에 공백없이 
 space-evenly  : item사이와 양끝에 균일한 공간으로 배치
 
*justify-self*
 개별 아이템 가로 정렬
 해당 item을 가로방향(row 축)으로 정렬
 start         : 왼쪽 배치
 end           : 오른쪽 배치
 center        : 중앙 배치
 stretch       : 쭉 늘림
 
*align-self*
 개별 아이템 세로 정렬
 해당 item을 세로방향(column 축)으로 정렬
 start         : 위쪽 배치
 end           : 아래쪽 배치
 center        : 중앙 배치
 stretch       : 쭉 늘림
 
*grid-auto-columns, grid-auto-rows*
 그리드 형태를 자동으로 정의
 grid-template-columns, grid-template-rows의 통제를 벗어난 
 위치에 있는 트랙의 크기를 지정하는 속성
  즉, column이나 row의 개수를 미리 알 수 없는 경우
      auto 써주면 굳이 횟수를 지정해서 반복할 필요없이 "알아서" 처리됨
   px / % / fr / repeat() 써서 지정해주기
      
*grid-auto-flow*
 item이 자동 배치되는 흐름을 결정하는 속성
 row    : 왼쪽에서 오른쪽으로 행을 채우고     
          엘리먼트가 너무 많을 때 새 행 작성
 column : 위쪽에서 아래쪽으로 열을 채우고 
          엘리먼트가 너무 많을 때 새 열 작성
 dense  : 빈 셀을 채우는 알고리즘
          row dense, column dense 와 같이 
          row와 column에 따라 기준 달라짐