picture element - by. UXKM

picture element 설명

이미지를 삽입합니다.(<img>의 srcset, sizes로 대체 가능)
<picture> 요소는 <img> 요소의 다중 이미지 리소스(multiple image resources)를 위한 컨테이너를 정의할 때 사용합니다.
<picture> 요소는 뷰포트(viewport)의 너비에 따라 커지거나 작아지는 하나의 이미지를 사용하는 대신 서로 다른 디스플레이나 기기에서 해당 뷰포트에 알맞게 채워질 수 있도록 여러 개의 이미지 중에서 적절한 이미지를 사용할 수 있도록 합니다. 이러한 요소는 웹 개발자가 이미지의 리소스를 보다 유연하게 지정할 수 있도록 해주므로, 반응형 디자인(responsive design)에서 주로 사용합니다.
<picture> 요소는 0개 이상의 <source> 요소와 하나의 <img> 요소로 구성되며, 브라우저는 <source> 요소 중에서 해당 뷰포트와 가장 잘 어울리는 <source> 요소를 다음과 같은 방법을 사용하여 선택합니다.

브라우저는 <source> 요소들의 속성값을 각각 확인해 나가며 조건을 만족하는 첫 번째 <source> 요소를 사용하고, 나머지 <source> 요소들은 무시합니다.
이 때 <img> 요소는 <picture> 요소의 자식 요소 중에서 가장 마지막에 위치해야 합니다.
이러한 <img> 요소는 <picture> 요소를 지원하지 않는 브라우저를 위한 하위 호환성(backward compatibility)을 위해 사용되거나 명시된 <source> 요소가 모두 조건을 만족하지 못 할 경우 사용됩니다.

<picture> 요소는 HTML5에서 새롭게 추가된 요소입니다.
Internet Explorer는 지원하지 않습니다.

6.8.1. picture 속성

[media] <source media="미디어 조건">

사용자 에이전트가 각 <source> 요소에 대해 평가할 미디어 조건(미디어 쿼리와 유사)을 지정합니다.
미디어 조건을 만족하지 못하면 해당 <source>요소를 무시합니다.

[type] <source type="MIME 유형(image/webp)">

요소 속성에서 리소스 URL에 대한 MIME 유형을 지정합니다.
사용자 에이전트가 지정된 유형을 지원하지 않으면 srcset 요소를 무시합니다.

[srcset] <source srcset="URL">

브라우저가 크기에 따라 사용할 수 있는 이미지를 나타냅니다.
높은 DPI의 스크린의 고해상도 영상을 제공하기 위해 사용합니다.

picture element 코드 예제