"picture, source, img 활용하기"
이미지 포맷 비교
이름 | 크기 | 종류 | 지원 브라우저 |
example.tif | 8.4MB | TIFF 이미지(원본) | - |
example.jpg | 201KB | JPEG 이미지 | - |
example.webp | 93KB | WebP 이미지 | 크롬 엣지 파폭 사파리 14~ 사파리 IOS 14.4~ 크롬(안드) 삼성인터넷 |
example.avif | 45KB | 문서 | 크롬 파폭 크롬(안드) 삼성인터넷 |
picture 태그 예제
<picture>
<source srcset="example.avif" type="image/avif" media="(max-width:960px)"> <!--avif 포맷(지원 브라우저 우선)-->
<!-- 가로값 <= 960 -->
<source srcset="example.webp" type="image/webp"> <!--webp 포맷(avif 후 지원 브라우저 우선)-->
<img src="example.jpg" alt=""> <!--위 포맷을 지원하지 않을경우 불러옴-->
</picture>
<picture>
<source srcset="example@2x.webp 2x, example@1x.webp" type="image/webp">
<img srcset="example@2x.jpg 2x" src="example@1x.jpg alt>
<!-- 이미지 2배수(레티나 디스플레이)와 1배수를 넣어줘서 분기 -->
</picture>
img 태그 로딩 지연과 디코딩 지연
img 태그의 로딩 지연은 자바스크립에서 사용했었다. 하지만 html에서 지원을 하면서 복잡하게 코딩을 하거나 무거운 플러그인을 사용하지 않아도 된다는 장점이 생겼다.
로딩 지연이란?
뷰 포트(화면) 안에 보이는 이미지를 우선 출력 후 아래쪽 보이지 않는 이미지는 출력하지 않고 사용자가 스크롤하면 다운로드를 시작하고 화면에 표시된다.(초기 로딩 속도에 좋음)
디코딩 지연이란?
이미지 디코딩을 병렬로 처리해서 이미지 외 다른 콘텐츠가 빠르게 표시되는걸 도와준다.
예제
<img
loading="lazy" //로딩 지연
decoding="async" //디코딩 지연
alt
>
Summary
- avif 포맷을 제공 후 webp, jpg(png)를 대체 수단으로 제공
- picture, source, img 요소와 srcset, type, media 속성의 문법 익히기
- 빠른 로딩 속도를 통해 UX를 개성하고 이미지 전송 리소스 줄이기
요구사항
- avif 포맷을 제공 후 webp, jpg(png)를 대체 수단으로 제공
- 960픽셀 미만 해상도에서 small 이미지를 출력(media = "(max-width:960px)")
961픽셀 이상 해상도에서 large 이미지를 출력 - 자바스크립트를 사용하지 않고 picture를 활용해서 1번과 2번 구현
'IT' 카테고리의 다른 글
패스트캠퍼스 The RED : 견고한 UI 설계를 위한 마크업 가이드 정리 2탄 BEM이 뭐지? CSS 네이밍 어떻게 하지? (4) | 2021.10.29 |
---|---|
패스트캠퍼스 The RED : 견고한 UI 설계를 위한 마크업 가이드 정리 2탄 CSS 리셋은 사용하는게 나을까? reset.css or normalize.css (3) | 2021.10.27 |
애플 2021 노트북 맥북 프로 M1 PRO, 맥북 프로 M1 MAX, 14.2형과 16.2형 스펙 상세! (14) | 2021.10.19 |
사진에 블루프린트 효과를 넣어서 사진을 선으로 처리하는 효과를 주자! (1) | 2021.10.12 |
애플 아이폰 13 목업 디자인 포토샵, 스케치, 피그마 파일 공유! 구매하지말고 사용하자! (8) | 2021.10.06 |