본문 바로가기
카테고리 없음

[CSS] grid레이아웃

by 몌으니 2024. 4. 9.

grid 레이아웃

CSS 레이아웃의 흐름 : Float > Flex > Grid

grid 레이아웃 시스템의 구조

flex는 1차원적 배열 구조 : row, column 방향 택 1

flex를 여러번 중첩시켜서 사용하여 구조를 짠다.

grid는 2차원적 배열 구조 : row와 column 레이아웃 동시 설정 가능

 

grid 속성

  1. 요소의 속성을 grid로 변경
    grid-line, grid-number

  2. grid-template-rows
    grid의 행의 개수 및 크기를 지정할 수 있다.
    grid-template-rows : 1fr 2ft 200px

  3. grid-template-columns
    grid의 열의 개수 및 크기를 지정할 수 있다.
    • fr : fraction(분수)의 약자, grid-template에서 사용할 수 있는 비율 단위
    • repeat(a, b) : grid-template에서 사용할 수 있는 반복 함수, b 규격의 grid-template을 a개 생성한다.          
      grid-template-columns : repeat(4, 1fr)  = grid-template-columns : 1fr 1fr 1fr 1fr  
      grid-template-rows : repeat(2, 1fr 200px) = grid-template-rows : 1fr 200px 1fr 200px  
      grid-template-rows : 3fr repeat(2, 1fr 200px) = grid-template-rows : 3fr 1fr 200px 1fr 200px 
  1. grid-column / grid-row
    grid-item이 얼마만큼의 영역을 차지할 지 정의한다.
    grid-column: 1/3
    grid-column은 grid-line의 번호, grid-row는 grid-number의 번호를 기준으로 영역을 할당한다.


Flex vs Grid

Flex

  • 비교적 작은 단위의 레이아웃 구성에 적합
  • 작업 유동성이 높기 때문에, 디자인이나 기획이 확실하게 잡히지 않아 변경 가능성이 있는 경우에 적합

Grid

  • 큰 규모의 레이아웃 구성에 적합
  • 레이아웃 구조가 확실하게 잡혀있는 경우, 효율적으로 반응형 디자인을 구현할 수 있음
  • ⭐️ 단, 그리드는 상대적으로 최신 기술이기 때문에 모든 브라우저에서 지원하지 않음!⭐️