반응형 웹 완벽 가이드
📱 모바일과 데스크톱을 다르게! 반응형 웹
스마트폰, 태블릿, PC 등 다양한 화면 크기에 맞춰 디자인이 변하는 웹을 반응형 웹이라고 합니다. 이를 가능하게 해주는 것이 미디어 쿼리입니다.
@media (조건) { CSS 코드 } 형태로 작성하며, 보통 max-width(모바일용)나 min-width(데스크톱용)를 조건으로 사용합니다.
🖼️ 화면에 따라 유연하게 늘어나는 미디어와 텍스트
요즘은 모니터뿐만 아니라 모바일 환경도 고려해야 하므로, 크기가 고정되어 있으면 화면을 뚫고 나가거나 너무 작아 보이지 않게 됩니다.
- 반응형 이미지:
max-width: 100%를 주면 부모 박스 크기에 맞춰 비율을 유지하며 유연하게 크기가 조절됩니다. - 반응형 타이포그래피: CSS
clamp(최소, 권장, 최대)함수를 사용하면, 미디어 쿼리 없이도 화면 넓이에 따라 부드럽게 글자 크기가 줄어들고 늘어납니다!
<div class="responsive-box">
화면 크기를 줄여보세요!<br>
(미리보기 창의 크기에 따라 색상이 변합니다)
</div>
<hr style="margin:20px 0; border:none; border-top:2px dashed #ccc;">
<style>
.media-container {
width: 90%;
margin: 0 auto;
border: 1px solid #cbd5e1;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
background: white;
}
.responsive-img {
/* 이미지 반응형 핵심 */
max-width: 100%;
height: auto;
display: block;
}
.responsive-text {
padding: 1.5rem;
text-align: center;
}
.clamp-title {
/* 텍스트 반응형 핵심: 최소 1.5rem, 화면너비의 5% 선호, 최대 3rem */
font-size: clamp(1.5rem, 5vw, 3rem);
font-weight: 900;
color: #1e293b;
margin: 0 0 10px 0;
line-height: 1.2;
}
</style>
<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>