<aside> 💡 교재와 같이 소스코드 보는 것을 추천!
</aside>
그리드 형태를 정의 한다.
grid-template-row
grid-template-columns
.grid-container {
display: grid;
/* columns를 200px, 300px, 200px로 만들 겠다.*/
grid-template-columns: 100px 300px 200px;
/* fr: fraction (비율), 알아서 늘어난다. (가변 크기) */
grid-template-columns: 1fr 2fr 1fr;
/* 양 끝의 column은 늘어나고 가운데는 고정되어 있다. */
grid-template-columns: 1fr 500px 1fr;
/* reapeat를 사용하여 반복할 수 있다. */
grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
grid-template-columns: repeat(5, 1fr)
/* row는 fr을 사용해도 자동으로 늘어나지 않는다.=> 컨테이너 자체를 늘려야 한다.*/
grid-template-rows: repeat(2, 1fr);
/* 그리드 item의 경우 컨테이너 높이가 확보되어있으면 row는 알아서 늘어난다. */
height: 80vh;
}
최솟값과 최댓값을 지정할 수 있는 함수이다.
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
/* minmax(최솟값, 최댓값): 최소 100px 최대는 자동으로 늘어난다. */
grid-template-rows: repeat(3, minmax(100px, auto));
}
column의 개수를 미리 정하지 않고 설정된 너비가 허용하는 한 최대한 셀을 채운다.
.grid-container {
display: grid;
/* media쿼리를 쓰지 않고도 column 갯수가 변하는 반응형 레이아웃을 만들 수도 있다. */
grid-template-columns: repeat(auto-fill, minmax(200px, auto));
}
auto-fill
: 셀의 수보다 item 갯수가 모자라면 공간이 남는다.auto-fit
: 셀의 수보다 item 갯수가 모자라도 남는 공간을 채운다. (item의 너비에 변화를 줌)