반응형 페이지를 위한 grid

YEONGHUN KO·2022년 1월 4일
0

CSS/SCSS - BASICS

목록 보기
3/12


짱구볼 너무 커엽다... 요번엔 요 볼따구 처럼 쭉쭉 늘어났다 줄어들었다 하는 웹페이지를 만들어 보자!

바로 auto-fill과 auto-fit이라는 property를 사용하면 된다!

auto-fill과 auto-fit은 사실 거의 비슷하지만 약간의 차이가 있다. column에 아이템이 추가될때마다 자동으로 wrapping되게 한다는 점에서 비슷하다. 그러나 auto-fill은 viewport의 크기가 늘어나면 그 빈 공간을 투명한 item으로 채우는 반면, auto-fit은 item의 크기를 늘림으로써 viewport의 빈공간을 채우게 된다.

이름 그대로 생각해보면 좀 더 이해가 쉬울 것이다.

우선 HTML부터 살펴보자.

auto-fill
<div class="grid-container grid-container--fill">
  <div class="grid-element">
    1
  </div>
  <div class="grid-element">
    2
  </div>
  <div class="grid-element">
    3
  </div>
  <div class="grid-element">
    4
  </div>
  <div class="grid-element">
    5
  </div>
  <div class="grid-element">
    6
  </div>
  <div class="grid-element">
    7
  </div>
</div>

<hr>

auto-fit
<div class="grid-container grid-container--fit">
  <div class="grid-element">
    1
  </div>
  <div class="grid-element">
    2
  </div>
  <div class="grid-element">
    3
  </div>
  <div class="grid-element">
    4
  </div>
  <div class="grid-element">
    5
  </div>
  <div class="grid-element">
    6
  </div>
  <div class="grid-element">
    7
  </div>
</div>

그리고 css를 다음과 같이 구성한다.

.grid-container {
    display: grid;
}

.grid-container--fill {
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
}

.grid-container--fit {
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
}

.grid-element {
  background-color: deepPink;
  padding: 20px;
  color: #fff;
  border: 1px solid #fff;
}

바로 grid-template-columns/rows에서 repeat의 첫번째 인자로 auto속성이 들어가면 된다.

그럼 차이점을 바로 영상으로 확인하자.

1. auto-fill

https://user-images.githubusercontent.com/65995664/148134529-0078a74e-79fb-4171-ac5b-b7da7d91a1d8.mp4

auto-fill은 투명한 item이 빈공간을 채우게 된다.

2. auto-fit

https://user-images.githubusercontent.com/65995664/148134534-ceacf566-76ce-4ff5-a9b8-82d720c968d1.mp4

반면 auto fit은 item이 늘어나면서 빈공간을 채운다.

어느 쪽이든 반응형으로 item들이 반응하도록 하는 속성이 바로 auto기능인 것이다. 알아뒀다가 유용하게 사용해보자!

profile
'과연 이게 최선일까?' 끊임없이 생각하기

0개의 댓글