✅ Grid 와 Flexbox의 차이를 알아보자!
비교 | Grid | Flexbox |
레이아웃 유형 | 2차원 (행 + 열) | 1차원 (행 또는 열) |
주로 사용하는 경우 | 전체 페이지 / 큰 구조 | 작은 UI 요소 정렬 |
배열 방식 | grid-template-rows grid-template-columns |
flex-direction 으로 한 방향 정렬 |
정렬 방식 | justify-items align-items |
justify-items align-items |
❓ 언제 Grid를 사용해야할까?
- 전체 페이지 레이아웃을 구성할 때
- 복잡한 카드 UI 레이아웃을 짤 때
- 행(row)과 열(column)을 동시에 정렬해야할 때
Grid를 적용한 예제코드
<div class="grid-container">
<div class="grid-item">1</div>
<div class="grid-item">2</div>
<div class="grid-item">3</div>
</div>
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
}
.grid-item {
background-color: lightblue;
padding: 20px;
text-align: center;
}
❓ 언제 Flexbox를 사용해야할까?
- 버튼 그룹, 네비게이션 바처럼 한 줄 정렬이 필요할 때
- 콘텐츠를 가운데 정렬해야할 때
- 동적으로 크기가 변하는 요소들을 정렬할 때
Flexbox를 적용한 예제코드
<div class="flex-container">
<div class="flex-item">Flexbox</div>
</div>
.flex-container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.flex-item {
padding: 20px;
background-color: coral;
}
Grid와 Flexbox 선택 기준 (기능별 추천 CSS)
기능 | 추천 |
전체적인 페이지 레이아웃 | Grid |
수평 정렬이 필요한 경우 | Flexbox |
행과 열을 동시에 정렬 | Grid |
작은 UI 요소 간의 정렬 | Flexbox |
사실 Grid와 Flexbox를 혼합해 사용하면 더욱 탄탄하게 퍼블리싱할 수 있습니다.
필요한 상황에 따라 적절하게 활용해보세요!