개념/CSS (23.03.14~)

[CSS] [12-5] CSS 그리드 레이아웃 사용하기

Lethargin 2023. 3. 26. 17:43

*CSS 그리드 레이아웃 : column(세로줄) x row(가로줄)로 구성되어 있음

*CSS 그리드 레이아웃 : 가장 최근에 제안된 그리드 레이아웃 제작 방법

 

[CSS 그리드 레이아웃 항목을 배치하는 속성]

1. display속성 : 그리드 컨테이너를 지정

  • grid : 컨테이너 안의 항목을 블록 레벨 요소로 배치
  • inline-grid : 컨테이너 안의 항목을 인라인 레벨 요소로 배치

 

2. grid-template-columns & grid-template-rows 속성 : 칼럼과 줄을 지정

fr단위 
&
repeat( )함수
-fr단위 : 상대비 지정 (ex. 1:1:1 ...)
-repeat( )함수 : 값이 반복될 때, 축약해서 표현 가능


예)
grid-template-columns: 1fr 1fr 1fr; => grid-template-columns: repeat(3, 1fr);로 축약 가능
minmax( )함수 -최솟값과 최댓값을 지정 (글자내용이 줄 높이보다 많아서 다 표시되지 않을 때 -> minmax( )함수를 써서 줄 높이를 유연하게 지정 가능)


예) grid-template-rows: minmax(100px, auto);
=> 줄 높이는 최소 100px로 지정한 뒤, 글자가 많아서 다 안담길 경우에는 자동으로 100px보다 커짐
auto-fill & auto-fit -자동으로 칼럼 개수를 늘이거나 줄여줌
-차이점은 auto-fit은 남는 공간 없이 꽉 채우는 반면, auto-fill은 정해진 최소너비까지만 표시


예)
①grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
=>화면을 꽉 채울 만큼 칼럼 너비를 늘려서 표시
②grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
=>칼럼 최소 너비(200px)만큼만 딱 채워서 표시. 나머지 빈 공간은 남겨놓음

 

3. grid-column-gap & grid-row-gap & grid-gap 속성 

-그리드 항목 ~ 항목 사이의 간격을 조절

  • grid-column-gap : 칼럼~칼럼 사이의 간격을 지정
  • grid-row-gap : 줄 ~ 줄 사이의 간격을 지정
  • grid-gap : 칼럼과 줄의 간격을 한꺼번에 지정   

       예)grid-gap: 30px 20px;  =>칼럼간격 30, 줄간격 20

       예)grid-gap: 1rem;

 


 

[배치하기]

1. 그리드 라인을 사용해서 배치하기

-그리드 라인의 번호(1,2,3,4, ...)를 이용

grid-column-start : 칼럼 시작의 라인 번호를 지정
grid-column-end : 칼럼 마지막 라인 번호를 지정

예)
grid-column-start: 1
grid-column-end: 4 
  grid-row-start : 같은 방법
grid-row-end : 같은 방법

예)
grid-row-start: 1
grid-row-end: 4 
grid-column : 칼럼 시작 번호 ~ 칼럼 끝 번호 사이에 슬래시(/)를 넣어 사용

예)
grid-column: 1/4
grid-row : 같은 방법


예)
grid-row: 1/4

 

2.  템플릿 영역을 사용해서 배치하기 (like 레고블럭,,)

①box1~box4까지 grid-area 속성을 사용해서 템플릿 이름을 지정

②그리드 컨테이너로 사용하는 #wrapper 요소에서 grid-template-areas 속성을 사용해서 배치 시작