첫 번째, srcset 속성은 ‘이미지 소스의 세트’라는 의미이다. 같은 비율의 다양한 크기를 가지는 동일 이미지들을 최소 2개 이상 명시하는 속성이다. 만약 1개 이미지 소스만 명시하려면 src 속성을 사용하시면 된다.
srcset 속성은 브라우저에 이미지 선택권을 위임하는 속성으로, 개발자는 어느 환경에서 어떤 크기의 이미지가 선택될 것인지 알 필요가 없으며, 알더라도 그냥 모르는 척하는 것이 정신 건강에 좋다.
<img
srcset="images/500.png 500w, images/300.png 300w, images/150.png 150w"
sizes="(min-width:960px) 500px, (min-width:640px) 300px, 320px"
src="images/150.png"
alt="gray-box">
<img
srcset="경로 원본크기, 경로 원본크기, 경로 원본크기"
sizes="(미디어조건) 최적화출력크기, (미디어조건) 최적화출력크기, 기본출력크기"
src="경로"
alt="대체텍스트" />
x와 w 디스크립터는 개발자가 브라우저에 이미지의 크기를 알려주는 용도의 단위이다.
이미지 로드는 지불할 비용이 크기 때문에,브라우저가 비용 지불 없이도 이미지의 크기를 알 수 있도록 개발자가 x 혹은 w 디스크립터로 이미지 크기를 명시하는 것이다. 따라서 이미지의 정확한 크기를 확인하고 입력하는 것이 중요하다.
<img
srcset="images/1.png 1x, images/2.png 2x"
src="images/a.png"
alt="gray-box">
<img
srcset="images/500.png 500w, images/300.png 300w, images/150.png 150w"
src="images/150.png"
alt="gray-box">
이미지 500.png의 넓이는 500px, 300.png의 넓이는 300px, 150.png의 넓이는 150px이라고 브라우저에게 알려주는 것이다.
<img
srcset="images/500.png 500w, images/300.png 300w, images/150.png 150w"
sizes="(min-width:960px) 500px, (min-width:640px) 300px, 320px"
src="images/150.png"
alt="gray-box">
뷰포트가 960px 이상일 때 사진의 크기 500px, 뷰포트가 640px 이상일 때 사진의 크기 500px, 그 이외 기본적으로 사진의 크기 320px으로 보여진다.
<img
srcset="images/500.png 500w, images/300.png 300w, images/150.png 150w"
sizes="(min-width:960px) 500px, (min-width:640px) 300px, 320px"
width="300"
src="images/150.png"
alt="gray-box">
참고: https://heropy.blog/2019/06/16/html-img-srcset-and-sizes/
크기가 큰 사진부터 작은사진 순서대로 작성해야 작동한다.
==> 이부분은 상관 없어보입니다.