HTML, CSS

CSS 반응형 디자인 ✅ 미디어쿼리, 모바일 퍼스트, 컨테이너 쿼리

jonbeo 2025. 10. 16. 09:15
반응형

 

 

반응형 디자인은 하나의 코드로 다양한 화면 크기를 지원하는 방법입니다.
사용자가 어떤 기기를 쓰든지, 최적화된 UI/UX를 제공할 수 있도록 만드는 것이 목표입니다.


🧩 1. 미디어쿼리(Media Query)

📌 기본 문법

 
@media (조건) {
  /* 적용할 CSS */
}

예제 – 화면 크기에 따른 스타일 변경

 
.container {
  width: 100%;
}

@media (min-width: 768px) {
  .container {
    width: 750px;
  }
}

@media (min-width: 1200px) {
  .container {
    width: 1140px;
  }
}

 

👉 화면 크기에 따라 유동적으로 레이아웃 변경 가능


📱 2. 모바일 퍼스트 전략

  • 기본 스타일 = 모바일 기준
  • 큰 화면(태블릿/PC)은 min-width를 이용해 점진적으로 스타일 확장

예제

 
/* 모바일 기본 */
.card {
  flex-direction: column;
}

/* 태블릿 이상 */
@media (min-width: 768px) {
  .card {
    flex-direction: row;
  }
}

 

👉 모바일 사용자가 더 많기 때문에 모바일 퍼스트가 현재 웹 디자인의 표준입니다.


🖥️ 3. 데스크톱 퍼스트 전략

  • 기본 스타일을 PC 기준으로 작성
  • 작은 화면(모바일)은 max-width로 줄여나감

예제

 
/* PC 기본 */
.card {
  flex-direction: row;
}

/* 모바일 */
@media (max-width: 767px) {
  .card {
    flex-direction: column;
  }
}

 

👉 기존 레거시 시스템에서는 아직도 자주 쓰이지만, 최신 프로젝트에서는 잘 사용하지 않음.


🧱 4. 컨테이너 쿼리(Container Query)

최신 CSS 기능 (2022~) – 브라우저 크기가 아닌 부모 컨테이너 크기를 기준으로 반응형 스타일 적용

예제

 
.card {
  container-type: inline-size;
}

@container (min-width: 500px) {
  .card-item {
    flex-direction: row;
  }
}

 

👉 특정 컴포넌트 단위로 반응형 처리가 가능 → 컴포넌트 기반 개발(React, Vue)에 최적


💡 5. 실무 적용 팁

  • ✅ 모바일 퍼스트 전략으로 기본 구조를 잡고, PC 전용 레이아웃은 미디어쿼리로 확장
  • ✅ 레이아웃은 flex, grid와 함께 사용하면 강력한 반응형 구조 가능
  • ✅ 컨테이너 쿼리는 최신 브라우저부터 지원 → 점진적 도입 권장
  • ✅ 반응형 테스트는 크롬 DevTools → 디바이스 모드로 반드시 확인

📝 마무리 정리

  • 미디어쿼리: 화면 크기에 따라 스타일 변경
  • 모바일 퍼스트: 모바일을 기준으로 스타일 확장 (현실적이고 권장)
  • 컨테이너 쿼리: 컴포넌트 단위 반응형 → 차세대 표준

👉 반응형 디자인을 잘하면 UX, SEO, 유지보수성까지 크게 향상됩니다!

반응형