amp-img 반응형 이미지 만들기 - srcset 속성

sreset을 사용하면 뷰포트 너비마다 각각의 이미지를 지정할 수 있습니다. 그런 다음 브라우저는 뷰포트 너비만 한 이미지를 선택하여 사용자의 장치에 가장 적합한 이미지를 제공합니다.

<amp-img src="img/feature.jpg"
         srcset="img/feature-1200.jpg 1200w,
                 img/feature-lrg.jpg 1080w,
                 img/feature-med.jpg 768w,
                 img/feature.jpg 320w"
         width="768"
         height="305"
         layout="responsive"
         alt="Feature image">
</amp-img>

rcset 속성은 대체 이미지를 쉼표로 구분하여 각각의 너비를 적용합니다. 예를 들어 앞의 코드에서 feature-lrg.jpg는 파일 이름이고 1080w는 이 이미지의 너비가 1080 픽셀임을 브라우저에 알립니다. 페이지를 데스크톱 브라우저에서 로드하고 개발자 도구의 네트워크 탭을 확인합니다.

amp-img 반응형 이미지 만들기 - srcset 속성 사용

브라우저 뷰포트의 너비에 따라 실제로 다운로드된 이미지가 표시되어야 합니다. 브라우저 크기를 조정하면 뷰포트 너비에 따라 대체 이미지를 표시하는 것을 볼 수 있습니다.

지금 표시되는 이미지 뿐만 아니라 다른 sreset 이미지에도 layout="responsive"가 적용되고 있습니다. 즉, 브라우저에서 어떤 이미지를 선택하든지 AMP는 이미지의 크기를 조정하여 뷰포트를 채웁니다. 따라서 모든 뷰포트에서 적절한 크기의 이미지를 표시할 수 있습니다.


heightssizes 속성을 사용하면 반응형 이미지를 조금 더 조정할 수 있습니다. sizes 속성을 사용하면 미디어 쿼리를 사용하여 사용자의 뷰포트 크기에 따라 이미지가 표시되어야 하는 범위를 설정할 수 있습니다. 예를 들어 다음과 같이 사용합니다.

sizes="(min-width: 640px) 50vw, 100vw"

즉, 화면 크기가 640px 이상인 경우 이미지는 뷰포트 너비의 50%입니다. 640px 미만의 다른 화면 크기의 경우 뷰포트 너비의 100%로 이미지를 표시합니다.

heights 속성은 비슷하지만 너비 대신 이미지 높이에 적용됩니다. 예를 들면 다음과 같습니다.

heights="(min-width: 500px) 200px, 80%"

sizes 또는 heights 속성을 사용하여 너비와 높이를 함께 지정하면 layout 속성은 기본적으로 responsive으로 설정됩니다.

방문해주셔서 감사합니다. 즐거운 하루 되세요!

댓글 쓰기