스마트폰, 태블릿, PC 등 다양한 화면 크기에 맞춰 디자인이 변하는 웹을 반응형 웹이라고 합니다. 이를 가능하게 해주는 것이 미디어 쿼리입니다.
@media (조건) { CSS 코드 } 형태로 작성하며, 보통 max-width(모바일용)나 min-width(데스크톱용)를 조건으로 사용합니다.
/* 기본 CSS 작성 */@media (min-width: 768px) {}
@media (min-width: 1024px) {}
/* 기본 CSS 작성 */@media (max-width: 1023px) {}
@media (max-width: 767px) {}
요즘은 모니터뿐만 아니라 모바일 환경도 고려해야 하므로, 크기가 고정되어 있으면 화면을 뚫고 나가거나 너무 작아 보이지 않게 됩니다.
max-width: 100%를 주면 부모 박스 크기에 맞춰 비율을 유지하며 유연하게 크기가 조절됩니다.clamp(최소, 권장, 최대) 함수를 사용하면, 미디어 쿼리 없이도 화면 넓이에 따라 부드럽게 글자 크기가 줄어들고 늘어납니다!<div class="responsive-box">
화면 크기를 줄여보세요!<br>
(미리보기 창의 크기에 따라 색상이 변합니다)
</div>
<hr style="margin:20px 0; border:none; border-top:2px dashed #ccc;">
<div class="media-container">
<img src="https://images.unsplash.com/photo-1707343843437-caacff5cfa74?q=80&w=800" class="responsive-img" alt="풍경 이미지">
<div class="responsive-text">
<h2 class="clamp-title">화면을 줄여보세요!</h2>
<span style="font-size: 1rem; color: #64748b;">
이미지 비율이 유지되며 작아지고,<br>
위의 두꺼운 제목 글씨도 화면 너비에 맞춰 부드럽게 작아집니다!
</span>
</div>
</div>