출처: 매일메일
CSS에서 Flexbox와 Grid는 레이아웃을 구성할 때 자주 사용되는 두 가지 강력한 도구이다. 이들은 요소를 배치하고 정렬하는 데 유용하지만, 각각의 목적과 기능에 차이가 있다.
justify-content와 align-items 속성을 사용하여 요소 간 간격과 정렬을 조정한다.grid-template-rows와 grid-template-columns 속성을 사용하여 행과 열의 크기를 사전에 정의한다.| 특징 | Flexbox | Grid |
|---|---|---|
| 장점 | 간단한 설정, 유연한 정렬 | 복잡한 2차원 레이아웃 가능 |
| 단점 | 2차원 레이아웃에는 한계 | 초기 설정 복잡, 학습 곡선 길음 |
| 사용 사례 | 버튼 그룹, 내비게이션 바 등 단순 구성 | 대시보드, 포토 갤러리 등 복잡한 구성 |
Flexbox와 Grid는 함께 사용할 수도 있다. 예를 들어:
/* Grid로 전체 레이아웃 구성 */
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
}
/* Flexbox로 내부 콘텐츠 정렬 */
.item {
display: flex;
justify-content: center;
align-items: center;
}
Flexbox는 단순하고 유연한 정렬 작업에 적합하며, Grid는 복잡하고 정교한 레이아웃 설계에 최적화되어 있다. 두 기술을 상황에 맞게 결합하여 활용하면 더욱 효율적이고 유연한 웹 디자인을 구현할 수 있다.