💡 퀵 접속: htm.kr/picture
Picture 태그는 반응형 이미지를 구현하는 데 사용됩니다. 다양한 화면 크기나 해상도에 따라 다른 이미지를 제공할 수 있게 해주며, 주로 반응형 웹 디자인에서 활용됩니다.
<picture>
<source media="(min-width: 800px)" srcset="large.jpg">
<source media="(min-width: 400px)" srcset="medium.jpg">
<img src="small.jpg" alt="반응형 이미지">
</picture>
| 속성 | 설명 | 예시 |
|---|---|---|
| media | 미디어 쿼리 조건 | <source media="(min-width: 800px)"> |
| srcset | 이미지 소스 세트 | <source srcset="image.jpg 1x, image-2x.jpg 2x"> |
| type | 이미지 형식 | <source type="image/webp"> |
<!-- 기본 반응형 이미지 예제 -->
<div class="responsive-example">
<h3>기본 반응형 이미지 예제</h3>
<picture>
<source media="(min-width: 800px)" srcset="large.jpg">
<source media="(min-width: 400px)" srcset="medium.jpg">
<img src="small.jpg" alt="반응형 이미지">
</picture>
</div>
<!-- 고해상도 디스플레이 예제 -->
<div class="retina-example">
<h3>고해상도 디스플레이 예제</h3>
<picture>
<source srcset="image.jpg 1x, image-2x.jpg 2x">
<img src="image.jpg" alt="고해상도 이미지">
</picture>
</div>
<!-- WebP 지원 예제 -->
<div class="webp-example">
<h3>WebP 지원 예제</h3>
<picture>
<source type="image/webp" srcset="image.webp">
<img src="image.jpg" alt="WebP 지원 이미지">
</picture>
</div>
<style>
/* 반응형 이미지 예제 스타일 */
.responsive-example {
margin: 20px 0;
padding: 15px;
border: 1px solid #ddd;
border-radius: 4px;
}
/* 고해상도 이미지 예제 스타일 */
.retina-example {
margin: 20px 0;
padding: 15px;
border: 1px solid #ddd;
border-radius: 4px;
}
/* WebP 이미지 예제 스타일 */
.webp-example {
margin: 20px 0;
padding: 15px;
border: 1px solid #ddd;
border-radius: 4px;
}
/* 반응형 스타일 */
@media (max-width: 768px) {
.responsive-example,
.retina-example,
.webp-example {
margin: 10px 0;
padding: 10px;
}
}
</style>
<style>
/* 기본 picture 스타일 */
picture {
display: block;
max-width: 100%;
height: auto;
}
/* 이미지 스타일 */
picture img {
width: 100%;
height: auto;
display: block;
}
/* 반응형 스타일 */
@media (max-width: 768px) {
picture {
margin: 10px 0;
}
}
</style>
picture 태그가 올바르게 사용되었는지 확인하는 방법: