패스트캠퍼스 강의를 정리한 내용입니다.
"The RED : 견고한 UI 설계를 위한 마크업 가이드 by 정찬명"
폴백(fallbacks)이란?
브라우저별로 지원 사양이 다르기 때문에, 의도한 기능이 지원되지 않을 경우를 대비하여 이와 유사하게 동작하도록 만드는 방법
if ('avif'를 지원하면) {
'avif' 출력
} else if ('webp'를 지원하면) {
'webp' 출력
} else {
'jpg' 출력
}
<picture>
<source srcset="x.avif" type="image/avif">
<source srcset="x.webp" type="image/webp">
<img src="x.jpg" alt>
</picture>
<picture>
<source srcset="small.webp" media="(max-width:960px)">
<img src="large.webp" alt>
</picture>
레티나 디스플레이란?
고해상력을 가진 모니터 화면으로
일반적인 이미지보다 두 배 더 큰 이미지를 제공해서
강제로 작게 리사이징한 후 화면에 출력하기 때문에 더 선명한 화면을 제공함
<picture>
// srcset에 이미지 경로 작성하고 한 칸 띄운 후 '2x'라고 적으면, 레티나 디스플레이에서만 해당 소스를 화면에 출력함
// 레티나 디스플레이가 아닐 경우 소스의 1배수 이미지 'webp'를 화면에 출력함
<source srcset="2x.webp 2x, 1x.webp" type="image/webp">
// img 요소에도 srcset 속성 사용 가능
// src에는 폴백 이미지 경로 작성
<img srcset="2x.webp 2x" src="1x.jpg" alt>
</picture>
<img
loading="lazy" // 로딩 지연
decoding="async" // 디코딩 지연
alt
>
이미지 지연 로딩 :
웹페이지를 화면에 출력할 때 보통 뷰포트 안에서 보이는 이미지만 먼저 출력하고 뷰포트 아래(화면 바깥) 이미지들은 로딩하지 않다가 브라우저 스크롤을 통해 화면을 위로 올리면 그때 아래 이미지들을 다운로드 하는 것
이미지 디코딩 지연 :
이미지 디코딩을 병렬로 처리해서 이미지 외 다른 콘텐츠가 웹페이지에 빠르게 표시되는 것을 도와줌
이미지 정보 확인 시 아래 용어 참고
- currentSrc : 현재 화면에 출력하고 있는 소스
- intrinsic : 현재 화면에 출력하는 소소의 원본 사이즈