Published on

flexbox를 이용한 grid 구현

flex container로 grid item 요소들을 감싸면 이 flex container 속에 들어간 자식요소들은 가로 세로 유연하게 배치된다.

  • display: flex 속성을 적용한 요소는 flex container가 된다.

flex-direction

  • 주축 방향을 설정한다.
  • default는 row이고, 위에서 아래로 향하게 하려면 column으로 설정한다.

justify-content

  • 주축을 기준으로 flex item 수평 정렬 방법을 설정한다.
  • flex-start(default) : 주축의 시작 부분을 기준으로 flex item을 정렬한다.
  • center : 주축의 중앙을 기준으로 flex item을 정렬한다.
  • flex-end : 주축의 끝부분을 기준으로 flex item을 정렬한다.
  • space-around : 주축을 기준으로 flex item을 일정한 간격으로 정렬한다.
  • space-between : 첫 번째와 마지막 flex item은 주축의 시작 부분과 끝부분에 정렬하고 나머지 flex item을 일정한 간격으로 정렬한다.

align-content

  • flex item이 여러 줄로 나열되어 있을 때 주축을 기준으로 수직 정렬 방법을 설정한다.
  • stretch(default): flex item의 높이를 늘려 flex container의 전체 높이를 채운다.
  • flex-start: 교차축의 시작 부분을 기준으로 정렬한다.
  • center: 교차축의 중앙을 기준으로 정렬한다.
  • flex-end: 교차축의 끝부분을 기준으로 정렬한다.
  • space-around: 교차축을 기준으로 flex-item을 일정한 간격으로 정렬한다.
  • space-between: 첫 번째와 마지막 flex item은 교차축의 시작 부분과 끝부분에 정렬하고 나머지 flex item을 일정한 간격으로 정렬한다.

align-items

  • align-content와 비슷하다. flex-item이 한 줄로 나열되어 있을 때 주축을 기준으로 수직 정렬 방법을 설정한다.

flex-wrap

  • flex item이 flex container를 벗어났을 때 줄을 바꾸는 속성.
  • default는 nowrap이고, 줄을 바꿔 여러줄로 배치하려면 wrap으로 설정한다.

flex-flow

  • flex-direction 속성과 flex-wrap 속성을 flex-flow 속성으로 단축해서 사용할 수 있다.
  • ex) flex-flow: column wrap;

flexbox grid example

.pool_list_wrap {
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  align-content: flex-start;
  align-items: flex-start;
}
.pool_list_wrap .pool_item {
  width: 10%;
  padding: 0 4px;
  margin-bottom: 8px;
  box-sizing: border-box;
  cursor: pointer;
}
.pool_list_wrap .pool_item img {
  width: 100%;
  height: auto;
  object-fit: cover;
}