CSS Grid Essentials

김서하·2021년 4월 4일
0

CSS

목록 보기
9/11
Grid -> 두 방향(가로-세로) 레이아웃 시스템(2차원)
 Flex와 마찬가지로 container, item 필요
 ex) <div class="container">
            <div class="item">A</div>
            <div class="item">B</div>
     </div>
  ---부모 엘리먼트인 div.container를 Grid Container//
     자식 엘리먼트인 div.item들을 Grid Item
     즉!! 컨테이너가 Grid의 영향을 받는 전체공간이고, 
         설정된 속성에 따라 각각의 아이템들이 어떤 형태로 
         배치되는 것---
         
   Flex와 마찬가지로 컨테이너에 display: grid; 설정!  
      .container {
            display: grid;
       } 이렇게..
       
*grid-template-columns, grid-template-rows*
                 (Grid 형태 정의)
  컨테이너에 Grid 트랙의 크기들을 지정해주는 속성
  grid-template-columns : 열의 배치(너비 설정)
   width를 1000px로 값을 줬으면
   grid-template-colums을 20%로 설정했으면
   1000의 20%이니까 200px로 계산!
  //
  grid-template-rows : 행의 배치(높이 설정)
   height를 500px로 값을 줬으면
   grid-template-rows를 10%로 설정했으면
   500의 10%이니까 50px로 계산!
       
*grid-template*
 grid-template-rows, grid-template-columns 대체
  ex) grid-template: 200px 300px / 20% 10% 70%;
                   ->  행의 크기   /    열의 크기
 
 *Fraction*
  분수-fr로 씀
  숫자 비율대로 트랙의 크기를 나눔
   즉, 1fr 1fr 1fr은 균일하게 1:1:1 비율인 3개
   100px 2fr 1fr 같이 함께 적용 가능!
   
 *Repeat*
  반복되는 값을 자동으로 처리할 수 있는 함수
  repeat(반복횟수, 반복값)
   즉, repeat(5, 1fr)은 1fr 1fr 1fr 1fr 1fr
   grid-template: repeat(3, 1fr 4fr 2fr); 이런 패턴    도 가능
      
 *MinMax*
  최솟값과 최댓값 지정할 수 있는 함수
  minmax(100px, auto)는 최소한 100px, 최대는 자동으로 
  늘어나게...
   즉, 아무리 내용의 양이 적더라도 최소한 높이 100px은 확보
       하고 내용이 많아 100px를 넘어가면 알아서 늘어나도록!
  (width 값을 주지 말아야 함수 적용을 볼 수 있음)
  
*Grid Gap*
 grid 항목 사이의 간격 설정  
 grid-row-gap, grid-column-gap    
   모든 행 사이 ,   모든 열 사이    에 간격 설정
  +grid의 시작 또는 끝에 공백 추가xx+
  grid-gap: 20px 10px; 처럼 합해서 쓸 수 있다('/'안 씀)
             행    열
             
*Grid Item*
 Grid 컨테이너의 자식 엘리먼트들 
 이 item들이 Grid 규칙에 의해 배치됨
     
*grid-row-start, grid-row-end*
 Grid item에 적용하는 속성, 각 셀의 영역을 지정!
  -시작번호 / 끝번호 지정-
 start는 시작하는 행,
 end는 끝나는 행으로 grid item을 끝내려는 행보다 하나 더 
 커야 함!!
 ex)행 2,3,4를 포함하는 엘리먼트에는
    grid-row-start: 2;
    grid-row-end: 5;
    
 *grid-row*
  grid-row-start와 grid-row-end 약어
   grid-row: 4 / 6;
           start end
    
*grid-column*
 -몇 개의 셀을 차지하게 할 것인지 지정-
 grid-column-start + grid-column-end
 row와 동일 ~ 여러 열에 걸쳐지게!
  span써서 다른 쪽 끝을 기준으로 열 또는 행을 시작하거나
  끝낼 수 있다!
  ex) .item {
        grid-column: 4 / span 2;
       } ---> item 엘리먼트가 4열에서 시작하여 2열의 
              공간 차지 따라서 4, 5열 차지!!
  //grid item의 시작위치와 길이 알고 있다면 span 쓰기!!

       grid-column: 4 / span 2;
       =
       grid-column: 4 / 6;
       =
       grid-column-start: 4;
       grid-column-end: span 2;
       =
       grid-column-start: span 2;
       grid-column-end: 6;
       네 코드 모두 같은 결과!!
       
 *Grid Area*
  grid 라인으로 둘러싸인 사각형 영역, grid 셀의 집합
   ex) grid-area: 2 / 3 / 4 / span 5;
        차례로
         grid-row-start,
         grid-column-start,
         grid-row-end,
         grid-column-end
        순 이다!!
   
      
     
profile
개발자 지망생 서하입니당

0개의 댓글