window.devicePixelRatio
์
๋ ฅํ๋ฉด ํด๋น ํ๋ฉด์ ํ์ ๋ฐ๋ ์ ์ ์์srcset = "์ด๋ฏธ์งํ์ผ๋ช ํ์๋ฐ๋[x]"
<img srcset="img/rabbit_300.png 2x, img/rabbit_500.png 3x"
src="img/rabbit_150.png"
alt="ํ ๋ผ">
๊ธฐ๊ธฐ์ ํ์ ๋ฐ๋๊ฐ 1์ธ ๊ฒฝ์ฐ
๊ธฐ๋ณธ์ผ๋ก ์ง์ ๋ rabbit_150.png๊ฐ ์ ํ๋จ
๊ธฐ๊ธฐ์ ํ์ ๋ฐ๋๊ฐ 2์ธ ๊ฒฝ์ฐ
srcset์ 2x๋ก ์ง์ ๋ rabbit_300.png๊ฐ ์ ํ๋จ
srcset = "์ด๋ฏธ์งํ์ผ๋ช ์๋ณธ์ด๋ฏธ์ง์๋์ด[w]"
<img srcset="img/rabbit_500.png 500w, img/rabbit_300.png 300w"
src="images/rabbit_150.png"
alt="ํ ๋ผ">
srcset = "์ด๋ฏธ์งํ์ผ๋ช ๊ณ ์ ํฝ์ ๋๋น[w]"
sizes = "(๋ฏธ๋์ด ์กฐ๊ฑด๋ฌธ) ์กฐ๊ฑด๋ฌธ์ด์ฐธ์ผ๊ฒฝ์ฐ ์ด๋ฏธ์ง๊ฐ ์ฑ์ธ ๋๋น"
<img
srcset="img/rabbit_500.png 500w, img/rabbit_300.png 300w, img/rabbit_150.png 150w"
sizes="(min-width:960px) 550px, (min-width:620px) 150px, 300px"
src="images/rabbit_150.png"
alt="ํ ๋ผ">
๋ทฐํฌํธ 960px ์ด์์ธ ๊ฒฝ์ฐ
(min-width:960px) ์กฐ๊ฑด๋ฌธ์ด ์ฐธ,
550px๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด 500w์ ๊ณ ์ ํฝ์
๋๋น๋ฅผ ๊ฐ์ง rabbit_500.png ์ ํ
๋ทฐํฌํธ 620px ์ด์์ธ ๊ฒฝ์ฐ
(min-width:620px) ์กฐ๊ฑด๋ฌธ์ด ์ฐธ,
150px๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด 150w์ ๊ณ ์ ํฝ์
๋๋น๋ฅผ ๊ฐ์ง rabbit_150.png๊ฐ ์ ํ
๋ทฐํฌํธ 620px ๋ฏธ๋ง์ธ ๊ฒฝ์ฐ
๋ชจ๋ ์กฐ๊ฑด๋ฌธ์ ํด๋นํ์ง ์์ ๋ง์ง๋ง ๊ธฐ๋ณธ๊ฐ ๊ฐ์ง,
300px๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด 300w์ ๊ณ ์ ํฝ์
๋๋น๋ฅผ ๊ฐ์ง rabbit_300.png๊ฐ ์ ํ
x ์์ ์, w ์์ ์, sizes๋ฅผ ์ฌ์ฉํ ๋ srcset ์ง์ ์๋๋ ๋ธ๋ผ์ฐ์ ์ ๋๋นํ๊ธฐ ์ํด src ์์ฑ์ ์ฃผ๋ ๊ฒ์ ํ์!!
<picture>
srcset
์์ฑ์ ๊ฐ์ ์ด๋ฏธ์ง๋ค ์ค ๊ฐ์ฅ ์ ์ ํ ๊ฒ์ ์ ํํ๋ค๋ฉด, <picture>
์ <source>
๋ฅผ ์ฌ์ฉํด ๋ค๋ฅธ ์ด๋ฏธ์ง๋ค ์ค ์ ์ ํ ๊ฒ ์ ํ<source>
์์ srcset
์์ฑ ๊ฐ์ <img>
์ src
์์ฑ์ ๋ฃ์ด ํ๋ฉด์ ๋ํ๋<img>
์์๊ฐ ์๋ค๋ฉด ์ด๋ฏธ์ง ํ๋ฉด์ ๋ํ๋์ง ์์<picture>
<source srcset="img/dog_1.jpg" media="(max-width:620px)">
<source srcset="img/dog_2.jpg" media="(max-width:960px)">
<img src="img/dog_3.jpg" alt="ํ์ ๊ฐ์์ง">
</picture>
<picture>
<source srcset="photo.avif" type="image/avif" />
<source srcset="photo.webp" type="image/webp" />
<img src="photo.jpg" alt="photo" />
</picture>
type
์์ฑ ๊ฐ์ด ๋ธ๋ผ์ฐ์ ๊ฐ ์ง์ํ๋ ํฌ๋งท์ธ์ง ํ์ํจsrcset
์ด <img>
์์ src
๋ก ๋ค์ด๊ฐ<source>
์์๋ก ๋์ด๊ฐ<source>
์์์ ํฌ๋งท์ด ์ง์๋์ง ์๋๋ค๋ฉด <img>
์์๋ฅผ ๋ ๋๋งWebP , AVIF ๋ ์ต์ ํฌ๋งท์ ์ด๋ฏธ์ง๋ก, ์ง์ํ์ง ์๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์์ ์ ์์
ํฌ๋ก์ค๋ธ๋ผ์ฐ์ง์ ์ํด<picture>
์์์ ๊ฐ์ด ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์
์ด๋ฐ ๋ฐฉ์์ ๊ธฐ๋ฒ์ '์ ์ง์ ํฅ์๊ธฐ๋ฒ' ์ด๋ผ๊ณ ํจ
โํฌ๋ก์ค๋ธ๋ผ์ฐ์ง ์ด๋?
- ์น ํ์ด์ง ์๋ ์ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์๋ํ ๋๋ก ์ ๋์ค๋ ๊ฒ (๋ธ๋ผ์ฐ์ ์ํธ ํธํ์ฑ)
โ์ ์ง์ ํฅ์๊ธฐ๋ฒ (Progressive enhancement) ์ด๋?- ๊ธฐ๋ณธ์ ์ผ๋ก๋ ์์ ๊ธฐ์ ํ๊ฒฝ์์ ๋์ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด๋๊ณ , ์ต์ ๊ธฐ์ ์ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์์๋ ์ต์ ๊ธฐ์ ๋ก ๊ตฌํํ๋ ๊ธฐ๋ฒ
<picture>
์ฌ์ฉํ ๋ ์ง์ ์๋๋ ๋ธ๋ผ์ฐ์ ์ ๋๋นํ๊ธฐ ์ํด <img src="">
์ฃผ๋ ๊ฒ์ ํ์!!
์ฐธ๊ณ ๋ฌธ์ mdn
https://developer.mozilla.org/ko/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture