관리 메뉴

공부기록용

CSS 기초 06(grid속성 grid-template-columns/rows, grid-gap응용) 본문

📚강의록📚/유노코딩)CSS

CSS 기초 06(grid속성 grid-template-columns/rows, grid-gap응용)

과부하가즈아 2023. 8. 3. 14:51

트랙관련함수

grid container의 트랙(행과 열) 크기를 지정할 때 사용할 수 있는 유용한 함수들이 있다. 

  • repeat( ) : 반복되는 값을 자동으로 처리할 수 있는 함수
  • minmax( ) : 최솟값과 최댓값을 각각 지정할 수 있는 함수
  • auto - fill & auto - fit : 반응형을 고려해 사용할 수 있는 키워드(함수❌)

⭐내용실습⭐

<!-- index.html-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css" />
    <title>그리드 레이아웃</title>
</head>
<body>
    <ul class="container">
        <li class="item">1</li>
        <li class="item">2</li>
        <li class="item">3</li>
        <li class="item">4</li>
        <li class="item">5</li>
    </ul>
</body>
</html>
/*style.css*/
*{
  box-sizing: border-box;
}
body{
  margin: 0;
}
ul{
  padding: 0;
  list-style-type: none;
  border: 5px solid teal;
}

li{
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: beige;
  border: 5px solid tomato;
  border-radius: 8px;
}
.container{
  display: grid;
  height: 500px;

  grid-template-columns: 100px 100px 100px;

  gap: 10px
}

grid-template-columns: 100px 100px 100px;

>이렇게 각각으로 3개의 행을 만들고 크기를 각각 지정할 수도 있지만


repeat( )

grid-template-columns: repeat(3, 100px);

> repeat( ) 함수를 사용해서 인자로 갯수, 크기를 지정해주면 중복으로 값을 넣을 필요가 없다.

 

.container{
  display: grid;
  height: 500px;

  grid-template-columns: repeat(2, 100px);
  grid-template-rows: repeat(3, 100px);

  gap: 10px
}

> grid-template-rows: repeat(3, 100px); 에도 마찬가지로 적응이 가능하다.

 

grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(3, 1fr);

> fr역시도 사용 가능하다. 


minmax( )

을 사용해서 좀 더 유연하게 만들어 볼 수 있다. 

.container{
  display: grid;
  height: 500px;

  grid-template-columns: repeat(2, minmax(100px, 200));
  grid-template-rows: repeat(3, 1fr);

  gap: 10px
}
minmax(최소길이, 최대길이)

> minmax(100px, 200px)로 최대로 늘리면 200px이 되고, 최대로 줄이면 100px이 되는 것을 확인해 볼 수 있다.

 

grid-template-columns: repeat(2, minmax(100px, auto));

> fr이나 auto로도 가능하며, auto의 경우

 

> 최소 값으로 100을 주어서 줄어들면 최소 100까지 줄어들게 되고 최대를 auto로 함으로써 구애 받지 않고 화면의 크기만큼 계속 늘어가는 것을 볼 수 있다.


auto - fill & auto - fit

repeat( )의 첫 번째 인자로 사용하는 키워드이며, auto - fill은 트랙의 최소 길이의 합보다 컨테이너의 길이가 훨씬 길어진 경우에 빈 공간을 남기고, auto - fit은 채운다. 

 

.container{
  display: grid;
  height: 500px;

  grid-template-columns: repeat(auto-fill, minmax(100px, auto));

  gap: 10px
}


.container{
  display: grid;
  height: 500px;

  grid-template-columns: repeat(auto-fit, minmax(100px, auto));

  gap: 10px
}

 

참고🖇️

https://youtu.be/xem0N8c9tWY

Comments