← 목록

Flexbox를 활용한 반응형 그리드 디자인

작성: 2025년 01월 02일읽기: 약 3분

웹 개발에 관심 있는 주니어 개발자 여러분, 반응형 웹 디자인이 왜 중요한지는 이미 잘 알고 계시죠? 오늘은 CSS Flexbox를 활용하여 멋진 반응형 그리드 디자인을 만드는 방법을 소개하려 합니다. 복잡한 코드 없이도 여러분의 웹사이트가 다양한 화면 크기에서도 멋지게 보일 수 있도록 도와줄 거예요.

Flexbox 기초

Flexbox는 CSS의 강력한 레이아웃 도구 중 하나로, 요소들을 유연하게 배치할 수 있게 해줍니다. 가로 또는 세로 방향으로 컨테이너 내의 아이템을 정렬할 수 있죠. 시작하기 전에, Flexbox를 사용하려면 컨테이너에 display: flex; 속성을 적용해야 합니다.

.container {
  display: flex;
}

이렇게 하면, .container 클래스를 가진 요소의 자식들은 Flexbox의 규칙을 따르게 됩니다.

반응형 그리드 만들기

Flexbox를 이용한 반응형 그리드를 만들기 위해, 우리는 몇 가지 속성을 활용할 것입니다. 주로 flex-wrapflex-basis가 중요한 역할을 합니다.

.container {
  display: flex;
  flex-wrap: wrap;
}

.item {
  flex-basis: 20%; /* 기본적으로 아이템은 컨테이너의 20% 너비를 차지합니다. */
  margin: 1%; /* 아이템 간의 간격 */
}

위의 코드는 아이템들이 컨테이너 너비의 20%를 차지하도록 설정합니다. flex-wrap: wrap; 속성 덕분에, 아이템들이 컨테이너 너비를 초과하면 자동으로 다음 줄로 넘어가 반응형으로 동작하게 됩니다.

화면 크기에 따른 조정

모든 화면에서 아이템들이 20% 너비를 차지하는 것은 이상적이지 않을 수 있습니다. 작은 화면에서는 아이템 하나가 더 큰 공간을 차지하는 것이 더 나을 수 있죠. 이를 위해 미디어 쿼리를 사용할 수 있습니다.

@media (max-width: 600px) {
  .item {
    flex-basis: 100%; /* 화면이 600px 이하일 때, 아이템은 컨테이너의 전체 너비를 차지합니다. */
  }
}

이 코드는 화면 너비가 600px 이하일 때, 각 아이템이 컨테이너의 전체 너비를 차지하도록 합니다. 이렇게 하면 작은 화면에서도 사용자에게 최적의 경험을 제공할 수 있습니다.

Flexbox를 활용한 반응형 그리드 디자인은 이렇게 간단합니다. 복잡한 코드나 프레임워크 없이도, 몇 가지 CSS 속성만으로 멋진 반응형 웹사이트를 만들 수 있습니다. 여러분도 이 기술을 활용해 보세요!