HTML ã«ãããã¬ã¹ãã³ã·ãç»åã®ä½¿ç¨
ãã®è¨äºã§ã¯ãã¬ã¹ãã³ã·ãç»åã¨ããæ¦å¿µã«ã¤ãã¦å¦ã³ã¾ããã¬ã¹ãã³ã·ãç»åã¨ã¯ãç»é¢ãµã¤ãºãè§£å度ãªã©ã大ããç°ãªã端æ«ã§ãé©åã«è¡¨ç¤ºãããç»åã®ãã¨ã§ããã¾ããHTML ãæä¾ãããã¬ã¹ãã³ã·ãç»åã®å®è£ ã«å½¹ç«ã¤ãã¼ã«ã«ã¤ãã¦ãè¦ã¦ããã¾ããããã«ããããã¾ãã¾ãªç«¯æ«ã§ã®ããã©ã¼ãã³ã¹ãåä¸ããããã¨ãã§ãã¾ãã
ãªãã¬ã¹ãã³ã·ãç»åãªã®ãï¼
å ¸åçãªã·ããªãªãè¦ã¦ã¿ã¾ãããã å ¸åçãªã¦ã§ããµã¤ãã«ã¯ããããã訪åè ã®å°è±¡ãè¯ãããããã®ãããã¼ç»åã¨ããããããã®ä¸ã«ã¯ã³ã³ãã³ãç»åãããã¤ãããã¾ãã ããããããããã¼ç»åã¯ãããã¼ã®å¹ å ¨ä½ã«ã¾ãããããã«ãã¦ãã³ã³ãã³ãç»åã¯ã³ã³ãã³ãåã®ã©ããã«åããããã¨æãã§ãããããã®ç°¡åãªä¾ãè¦ã¦ã¿ã¾ãããã

ããã¯ããã¼ããã½ã³ã³ããã¹ã¯ããããªã©ã®åºãç»é¢ã®ç«¯æ«ã§ã¯ãã¾ã表示ã§ãã¾ãï¼ã©ã¤ããè¦ã¦ã GitHub ã§ã½ã¼ã¹ã³ã¼ããè¦ããã¨ãã§ãã¾ãï¼ã以ä¸ã®ç¹ãé¤ãã° CSS ã«ã¤ãã¦ã¯è©³ãã説æãã¾ããã
- æ¬æã®ã³ã³ãã³ãã¯ãæå¤§å¹ 1200 ãã¯ã»ã«ã«è¨å®ããã¦ãã¾ãã â ãã®å¹ ãè¶ ãããã¥ã¼ãã¼ãã§ã¯ãæ¬ä½ã¯ 1200 ãã¯ã»ã«ã®ã¾ã¾ã§ãå©ç¨å¯è½ãªé åã®ä¸ã§ä¸å¤®ã«é ç½®ããã¾ãããããããçããã¥ã¼ãã¼ãã§ã¯ãæ¬æã¯ãã¥ã¼ãã¼ãã®å¹ ã® 100% ã«ãªãã¾ãã
- ãããã¼ç»åã¯ããããã¼ã®å¹ ãã©ã®ãããªå¹ ã§ãã£ã¦ãããã®ä¸å¿ã常ã«ãããã¼ã®ä¸å¤®ã«æ¥ãããã«è¨å®ããã¦ãã¾ãã ã§ãããããµã¤ããããçãç»é¢ã§è¡¨ç¤ºããã¦ããå ´åã¯ãç»åã®ä¸å¿ã«ããéè¦ãªãã£ãã¼ã«ï¼äººç©ï¼ã常ã«è¦ãã両端ã®ä½åãªé¨åã失ããã¾ããé«ã㯠200 ãã¯ã»ã«ã§ãã
- ã³ã³ãã³ãç»åã¯ã body è¦ç´ ãç»åããçããªãã¨ãç»åãããµããã®ã§ã¯ãªããå¸¸ã«æ¬æå ã«åã¾ãããã«ç¸®å°ãå§ããããè¨å®ããã¦ãã¾ãã
ããããç»é¢ãçã端æ«ã§ãµã¤ããè¦å§ããã¨ãåé¡ãçºçãã¾ããä¸ã®å³ã§ã¯ããããã¼ã¯åé¡ãªãããã§ãããã¢ãã¤ã«ç«¯æ«ã®ç»é¢ã®é«ãã®å¤ããå ãå§ãã¦ãã¾ããã¾ãããã®ãµã¤ãºã§ã¯ãæåã®ã³ã³ãã³ãç»åå ã® 2 人ã®é¡ãè¦ãã«ãããªã£ã¦ãã¾ãã

æ¹åçã¨ãã¦ãçãç»é¢ã®å å´ã¸è¡¨ç¤ºãããå ´åã¯ãç»åã®éè¦ãªé¨åã表示ããããªãã³ã°ããçã表示ãããã¨ãèãããã¾ããã¿ãã¬ããã®ãããªç»é¢ã®å å´ãä¸åã®æ©å¨ã«ã¯ã 2 ã¤ç®ã®ããªãã³ã°ãããç»åã表示ãããã¨ãã§ãã¾ãããã®ããã«ããã¾ãã¾ãªã¬ã¤ã¢ã¦ãã§ç°ãªãããªãã³ã°ç»åãæä¾ãããå ´åã®ä¸è¬çãªåé¡ã¯ãä¸è¬ã«ãã¢ã¼ããã£ã¬ã¯ã·ã§ã³åé¡ãã¨å¼ã°ãã¾ãã
ããã«ãå°ããªã¢ãã¤ã«ç»é¢ã§è¦ã¦ããå ´åããã®ãããªå¤§ããªç»åããã¼ã¸ã«åãè¾¼ãå¿ è¦ã¯ããã¾ããããã®ãããªãã¨ãããã¨ã帯åå¹ ãç¡é§ã«ãªãã¾ããå ·ä½çãªä¾ã¨ãã¦ã¯ãã¢ãã¤ã«ç«¯æ«ã®ã¦ã¼ã¶ã¼ã¯ãèªåã®ç«¯æ«ã§ã¯å°ããªç»åã§æ¸ãã®ã«ããã¹ã¯ãããã¦ã¼ã¶ã¼åãã®å¤§ããªç»åããã¦ã³ãã¼ããã¦ã帯åå¹ ãç¡é§ã«ããããªãã¨ãããã¨ãããã¾ããéã«ãå°ããªã©ã¹ã¿ã¼ç»åã¯ãå ã®ãµã¤ãºãã大ãã表示ããã¨ãç²ç¶ã«è¦ãã¦ãã¾ãï¼ã©ã¹ã¿ã¼ç»åã¯ãå¹ ã®æ°ã®ãã¯ã»ã«ã®éã¾ãã¨ãé«ãã®æ°ã®ãã¯ã»ã«ã®éã¾ãã§ãï¼ãçæ³çãªç¶æ³ã¯ãè¤æ°ã®è§£å度ãå©ç¨å¯è½ã§ãã¦ã§ããµã¤ãä¸ã®ãã¼ã¿ã«ã¢ã¯ã»ã¹ãã端æ«ã«å¿ãã¦é©åãªãµã¤ãºãæä¾ãããã¨ã§ããããã¯è§£å度åãæ¿ãã®åé¡ã¨å¼ã°ãã¦ãã¾ãã
ç¶æ³ãããè¤éã«ãã¦ããã®ãã端æ«ã«ãã£ã¦ã¯é«ãè§£å度ã®ç»é¢ãæã¡ããããã«è¡¨ç¤ºããã«ã¯ãæå¾ ãããããã大ããç»åãå¿ è¦ã¨ãã¦ãããã¨ã§ãã ããã¯æ¬è³ªçã«åãåé¡ã§ãããå°ãç°ãªãç¶æ³ã®ãã®ã§ãã
ãã¯ã¿ã¼ç»åã¯ããå´é¢ã§ãããã®åé¡ã解決ããã¨æãããããã¾ããã â ãã¡ã¤ã«ãµã¤ãºãå°ããã¦å®¹æã«ç¸®å°ºå¤æ´ã§ããã©ãã§ãå©ç¨ã§ããããã§ãã ãããããã¹ã¦ã®ç¨®é¡ã®ç»åã«é©ãã¦ããããã§ã¯ããã¾ãããåç´ãªå³å½¢ããã¿ã¼ã³ãã¤ã³ã¿ã¼ãã§ã¤ã¹è¦ç´ ãªã©ã«ã¯é©ãã¦ãã¾ãããä¾ãã°åçã®ãããªç²¾ç´°ãªãã®ããã¯ã¿ã¼ãã¼ã¹ã®ç»åã§ä½æããã¨ãã¨ã¦ãè¤éã«ãªãã¾ããä¸è¨ã®ä¾ã«è¦ããããããªç¨®é¡ã®ç»åã«ã¯ãJPEG ã®ãããªã©ã¹ã¿ã¼ç»åå½¢å¼ãããé©ãã¦ãã¾ãã
ãã®ç¨®ã®åé¡ã¯ãã¦ã§ããæåã«ç»å ´ããã¨ãã90 年代ååãã䏿ã®é ã«ã¯åå¨ãã¾ããã§ããã â ã¦ã§ãããã©ã¦ãºããå¯ä¸ã®ç«¯æ«ã¯ãã¹ã¯ãããã¨ã©ãããããã§ãã£ãããããã©ã¦ã¶ã¼ã®æè¡è ã仿§æ¸ã®èè ã¯è§£æ±ºçãå®è£ ãããã¨ãèãã¾ããã§ããããã¬ã¹ãã³ã·ãç»åæè¡ãã¯ãä¸è¨ã®ãããªåé¡ã解決ããããã«æè¿ã«ãªã£ã¦å®è£ ããããã©ã¦ã¶ã¼ã«æ§ã ãªç»åãã¡ã¤ã«ãã©ãã表示ãããã®ã¯åãã§ããããã¯ã»ã«æ°ãç°ãªãæ§ã ãªç»åï¼è§£å度ã®åãæ¿ãï¼ãç°ãªãé åã®åãæ¹ãç°ãªãæ§ã ãªç»åï¼ã¢ã¼ããã£ã¬ã¯ã·ã§ã³ï¼ãå«ãããã¨ãã§ãã¾ãã
ã¬ã¹ãã³ã·ãç»åã®ä½ãæ¹
ãã®ç¯ã§ã¯ãä¸ã§èª¬æãã 2 ã¤ã®åé¡ãè¸ã¾ãã HTML ã®ã¬ã¹ãã³ã·ãæ©è½ã使ç¨ãã¦ãããã解決ããæ¹æ³ã示ãã¾ãã ãªããä¸è¨ã®ä¾ã®ã³ã³ãã³ãé åã«è¦ãããããã«ããã®ç¯ã§ã¯ HTML ã® <img> ã«æ³¨ç®ãã¾ãããµã¤ããããã¼ã®ç»åã¯åãªãè£
飾ãªã®ã§ã CSS èæ¯ç»åã使ç¨ãã¦å®è£
ãã¾ãã CSS ã¯ããããã HTML ãããã¬ã¹ãã³ã·ããã¶ã¤ã³ã®ããã®åªãããã¼ã«ãæã£ã¦ãã¾ã(è±èª)ã®ã§ãããã«ã¤ãã¦ã¯å°æ¥ CSS ã®ã¢ã¸ã¥ã¼ã«ã§èª¬æãã¾ãã
è§£å度ã®åãæ¿ã: æ§ã ãªå¯¸æ³
ããã§ã¯ãè§£å度åãæ¿ãã§è§£æ±ºãããåé¡ã¯ä½ã§ããããï¼ åãç»åã³ã³ãã³ãããæ©å¨ã«å¿ãã¦å¤§ãããããå°ããããããã¦è¡¨ç¤ºãããã¨ã§ããããã¯ãä¾ã®ä¸ã® 2 çªç®ã®ã³ã³ãã³ãç»åã®ç¶æ³ã§ãã æ¨æºç㪠<img> è¦ç´ ã¯ãä¼çµ±çã«ãã©ã¦ã¶ã¼ã«ã½ã¼ã¹ãã¡ã¤ã«ãä¸ã¤ã ãããæå®ã§ãã¾ããã
<img src="elva-fairy-800w.jpg" alt="å¦ç²¾ã®è¡£è£
ãçãã¨ã«ã" />
ããããè¤æ°ã®è¿½å ã®ã½ã¼ã¹ç»åã¨ããã©ã¦ã¶ã¼ãæ£ãããã®ã鏿ããå©ãã«ãªããã³ããæä¾ãããã¨ãã§ããã 2 ã¤ã®å±æ§ â srcset åã³ sizes â ã使ç¨ãããã¨ãã§ãã¾ãã ãã®ä¾ã¯ã GitHub ã® responsive.html ã§è¦ããã¨ãã§ãã¾ã(ã½ã¼ã¹ã³ã¼ããåç
§ãã¦ãã ãã)ã
<img
srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
sizes="(width <= 600px) 480px,
800px"
src="elva-fairy-800w.jpg"
alt="å¦ç²¾ã®è¡£è£
ãçãã¨ã«ã" />
srcset ããã³ sizes 屿§ã¯è¤éã«è¦ãã¾ãããä¸è¨ã®ããã«å±æ§å¤ã®ããããã®é¨åãå¥ã
ã®è¡ã«æ¸ãã°ãçè§£ãããã¨ã¯é£ããããã¾ããã ããããã®å¤ã«ã¯ã«ã³ãåºåãã®ãªã¹ããè¨å®ããã¦ãããããããã®ãªã¹ãã®é¨å㯠3 ã¤ã®é¨åãããªã£ã¦ãã¾ãã ããããã®ä¸èº«ãè¦ã¦ã¿ã¾ãããã
srcset ã¯ããã©ã¦ã¶ã¼ã鏿ãããã¨ãã§ããç»åã®ã»ããã¨ãããããã®ç»åã®å¯¸æ³ãå®ç¾©ãã¾ãã ããããã®ã«ã³ãã®åã«æ¸ããã®ã¯ä»¥ä¸ã®éãã§ãã
- ç»åãã¡ã¤ã«å (
elva-fairy-480w.jpg) - 空ç½
- ç»åã®å¹
ã®å
å¨çãªãã¯ã»ã«æ° (
480w) â ãªããããã¯åä½ã«pxã§ã¯ãªãwã使ç¨ãã¾ããç»åã®å å¨ãµã¤ãºã¯å®éã®å¯¸æ³ã§ãããã¯ã³ã³ãã¥ã¼ã¿ã¼ã®ç»åãã¡ã¤ã«ã調ã¹ãã¨åããã¾ãï¼ä¾ãã° Mac ã§ã¯ Finder ã§ç»åã鏿ãã¦ã Cmd + I ãæ¼ãã¨æ å ±ç»é¢ãåºã¦ãã¾ãï¼ã
sizes ã¯ãä¸é£ã®ã¡ãã£ã¢æ¡ä»¶(ä¾ãã°ç»é¢ã®å¹
)ã§ãããç¹å®ã®ã¡ãã£ã¢æ¡ä»¶ãæç«ããã¨ãã«ãã©ã®å¯¸æ³ã®ç»åã鏿ããã®ãæé©ãã示ãã¾ãããããã¯ä»¥åã«èª¬æãããã³ãã§ãã ãã®å ´åãããããã®ã«ã³ãã®åã«ã¯æ¬¡ã®ãããªãã®ãæ¸ãã¾ãã
- ã¡ãã£ã¢æ¡ä»¶ (
(width <= 600px)) â ããã«ã¤ãã¦ã¯ CSS ã®è¨äºã§è©³ããå¦ã³ã¾ãããä»ã¯ã¡ãã£ã¢æ¡ä»¶ã¨ã¯ç»é¢ããªãå¯è½æ§ãããç¶æ ã§ããã¨ã ãè¨ã£ã¦ããã¾ãããã ãã®å ´åãããã¥ã¼ãã¼ãã®å¹ ã 600 ãã¯ã»ã«ä»¥ä¸ã§ããã¨ããã¨è¨ã£ã¦ãã¾ãã - 空ç½
- ã¡ãã£ã¢æ¡ä»¶ãæç«ããã¨ãã«åããã¹ãããã®å¹
(
480px)
ã¡ã¢:
sizes ã«ããã¦ã¯ãä»»æã®é·ãã®å¤ã使ããã¨ãã§ãã¾ããä¾ãã°ã絶対å¹
ï¼ä¾: 480pxï¼ã®ä»£ããã«ããã¥ã¼ãã¼ãã«å¯¾ããç¸å¯¾å¹
ï¼ä¾: 50vwï¼ãæä¾ãããã¨ãã§ãã¾ãããã ããã¹ãããå¹
ã¨ãã¦ãã¼ã»ã³ãå¤ãç¨ãããã¨ã¯ã§ãã¾ãããæå¾ã®ã¹ãããã®å¹
ã«ã¯ã¡ãã£ã¢æ¡ä»¶ããªããã¨ã«ãæ°ã¥ãã§ãããã ï¼ããã¯ãã©ã®ã¡ãã£ã¢æ¡ä»¶ãçã§ãªãå ´åã«é¸æãããæ¢å®å¤ã§ãï¼ããã©ã¦ã¶ã¼ã¯æåã«ä¸è´ããæ¡ä»¶ãããå¾ãç¡è¦ããã®ã§ãã¡ãã£ã¢æ¡ä»¶ãã©ã®ããã«ä¸¦ã¹ããæ³¨æãã¦ãã ããã
ãããã£ã¦ããããã®å±æ§ã使ç¨ããã¨ããã©ã¦ã¶ã¼ã¯æ¬¡ã®ããã«ãªãã¾ãã
- ç»é¢ã®å¤§ããããã¯ã»ã«å¯åº¦ããºã¼ã ã¬ãã«ãç»é¢ã®åãããããã¯ã¼ã¯é度ãè¦ã¦ããã
sizesãªã¹ãã®ä¸ã®ã©ã®ã¡ãã£ã¢æ¡ä»¶ãçã§ãããã確èªããã- ãã®ã¡ãã£ã¢ã¯ã¨ãªã¼ã§ä¸ããããã¹ããããµã¤ãºãè¦ãã
srcsetãªã¹ãã§æå®ãããç»åã®ãã¡ãã¹ãããã®ãµã¤ãºã¨ä¸è´ãããã®ãèªã¿è¾¼ã¿ã¾ãã表示ãµã¤ãºã«å®å ¨ã«ä¸è´ããç»åããªãå ´åããã©ã¦ã¶ã¼ã¯é¸æãããã¹ãããã®ãµã¤ãºããã大ããæåã®ç»åãé¸ã³ã表示ãµã¤ãºã«åããã¦å¤åãã¾ãã
以ä¸ã§ãï¼ ãã®æç¹ã§ã480px ã®ãã¥ã¼ãã¼ãå¹
ãæã¤å¯¾å¿ãã¦ãããã©ã¦ã¶ã¼ããã®ãã¼ã¸ãèªã¿è¾¼ãã¨ã(width <= 600px) ã¡ãã£ã¢æ¡ä»¶ãçã¨ãªãããããã©ã¦ã¶ã¼ã¯ 480px ã®ã¹ãããã鏿ãã¾ããelva-fairy-480w.jpg ã®åºæå¹
(480w) ãæãè¿ãããããããèªã¿è¾¼ã¾ãã¾ãã 800px ã®ç»å㯠128KB ã§ããã480px ã®ç»å㯠63KB ã§ 65KB ã®ç¯ç´ã«ãªãã¾ãã ä»ããããå¤ãã®åçããããã¼ã¸ã ã£ãã¨æ³åãã¦ã¿ã¦ãã ããã ãã®æè¡ã使ç¨ãããã¨ã§ãã¢ãã¤ã«ã¦ã¼ã¶ã¼ã¯å¤ãã®å¸¯åå¹
ãç¯ç´ã§ãã¾ãã
ã¡ã¢:
ãã¹ã¯ãããã®ãã©ã¦ã¶ã¼ã§ãã¹ãããå ´åããã©ã¦ã¶ã¼ã§ã¦ã£ã³ãã¦å¹
ãæãçãè¨å®ããã¨ãã«çãç»åãèªã¿è¾¼ããã¨ãã§ããªãå ´åã¯ããã¥ã¼ãã¼ãã®å¤ã確èªãã¦ãã ããï¼ãã©ã¦ã¶ã¼ ã® JavaScript ã³ã³ã½ã¼ã«ã«ç§»åã㦠document.querySelector('html').clientWidth ã¨å
¥åããã¨ãããããã®å¤ã確èªãããã¨ãã§ãã¾ãï¼ããã¾ãã¾ãªãã©ã¦ã¶ã¼ã§ã®ã¦ã£ã³ãã¦å¹
ã®æå°å¤ãä¿æããã¦ãããããã¯æã£ããããåºãããããã¾ãããã¢ãã¤ã«ãã©ã¦ã¶ã¼ã§ãã¹ãããå ´åã Firefox ã® about:debugging ãã¼ã¸ã®ãããªãã¼ã«ã使ç¨ãã¦ããã¹ã¯ãããã®éçºè
ãã¼ã«ã使ç¨ãã¦ã¢ãã¤ã«ã«èªã¿è¾¼ã¾ãããã¼ã¸ãæ¤æ»ãããã¨ãã§ãã¾ãã
ã©ã®ç»åãèªã¿è¾¼ã¾ãããã確èªããã«ã¯ã Firefox ã®éçºè ãã¼ã«ã®ãããã¯ã¼ã¯ã¢ãã¿ã¼ã¿ãããChrome ã®éçºè ãã¼ã«ã®ãããã¯ã¼ã¯ããã«ã使ç¨ãããã¨ãã§ãã¾ããChrome ã§ã¯ãæ¢ã«ãã¦ã³ãã¼ããããç»åãæ¾ããªãããã«ããã£ãã·ã¥ãç¡å¹ã«ãããã¨ãã§ãã¾ãã
ãããã®æ©è½ã«å¯¾å¿ãã¦ããªãå¤ããã©ã¦ã¶ã¼ã¯ããããç¡è¦ãã src 屿§ã§åç
§ããã¦ããç»åãéå¸¸ã®æ¹æ³ã§èªã¿è¾¼ã¿ã¾ãã
ã¡ã¢:
ææ¸ã® <head> ã«ã¯ã <meta name="viewport" content="width=device-width"> ã¨ããè¡ãããã¾ãã ããã¯ãã¢ãã¤ã«ãã©ã¦ã¶ã¼ãã¦ã§ããã¼ã¸ãèªã¿è¾¼ãããã«å®éã®ãã¥ã¼ãã¼ãå¹
ã使ç¨ããããã«å¼·å¶ãã¾ããï¼ä¸é¨ã®ã¢ãã¤ã«ãã©ã¦ã¶ã¼ã§ã¯ããã¥ã¼ãã¼ãå¹
ã«ã¤ãã¦åãã¤ãã大ããªãã¥ã¼ãã¼ãå¹
ã§ãã¼ã¸ãèªã¿è¾¼ã¿ãèªã¿è¾¼ãã ãã¼ã¸ã縮å°ãããããã¬ã¹ãã³ã·ãç»åããã¶ã¤ã³ã«ã¯ãã¾ãå½¹ã«ç«ã¡ã¾ããã ããã«ã¤ãã¦ã¯ãä»å¾ã®ã¢ã¸ã¥ã¼ã«ã§è©³ãã説æãã¾ããï¼
è§£å度ã®åãæ¿ã: åããµã¤ãºãç°ãªãè§£å度
ãã¾ãã¾ãªè§£å度ã®ãã£ã¹ãã¬ã¤ã«åãå®å¯¸ã§è¡¨ç¤ºãããç»åãããã¨ãã¾ããé«è§£å度ã®ãã£ã¹ãã¬ã¤ã§ã¯ãããé«è§£å度ã®ç»åãæä¾ãããã¨ã§ãããåªããã¦ã¼ã¶ã¼ä½é¨ãæä¾ãããã¨ãã§ãã¾ãã
ããããããã«ã¯ãsrcset ã§ x è¨è¿°åãæå®ããsizes ãæå®ããªããã¨ã§ããã©ã¦ã¶ã¼ã«é©åãªè§£å度ã®ç»åã鏿ããããã¨ãã§ãã¾ããããç°¡åãªæ§æã§ãããã㯠srcset-resolutions.html ã®ãããªãã®ã§ã(ã½ã¼ã¹ã³ã¼ããåç
§ãã¦ãã ãã)ã
<img
srcset="elva-fairy-320w.jpg, elva-fairy-480w.jpg 1.5x, elva-fairy-640w.jpg 2x"
src="elva-fairy-640w.jpg"
alt="å¦ç²¾ã®è¡£è£
ãçãã¨ã«ã" />
ç»åã¯å¸¸ã«åããµã¤ãºã§è¡¨ç¤ºããã¾ãããé«è§£å度ã®ãã£ã¹ãã¬ã¤ã§ã¯ããå¤ãã®è©³ç´°ã確èªã§ãããã¨ã«æ³¨æãã¦ãã ããã

ãã®ä¾ã§ã¯ã次㮠CSS ãç»åã«é©ç¨ãããç»é¢ä¸ã« 320 ãã¯ã»ã«ã®å¹ ãè¨å®ããã¾ãï¼CSS ãã¯ã»ã«ã¨ãå¼ã°ãã¾ãï¼ã
img {
width: 320px;
}
ãã®å ´åãsizes ã¯å¿
è¦ããã¾ããããã©ã¦ã¶ã¼ã¯ã表示ããã¦ããç»é¢ãã©ã®è§£å度ã§ããããåç´ã«èª¿ã¹ãsrcset ã§åç
§ãããæãé©åãªç»åãæä¾ãã¾ãã ãããã£ã¦ããã¼ã¸ã«ã¢ã¯ã»ã¹ãã端æ«ãæ¨æºè§£å度ãä½è§£å度ã®ç»é¢ãæã£ã¦ãã¦ã1 ã¤ã®ããã¤ã¹ãã¯ã»ã«ãå CSS ãã¯ã»ã«ã表ãã¦ããå ´åãelva-fairy-320w.jpg ã®ç»åãèªã¿è¾¼ã¾ãã¾ã(1x ã¯æé»ã®ãããå«ããå¿
è¦ã¯ããã¾ãã)ã 端æ«ã CSS ãã¯ã»ã«ããã 2 ã¤ã®ããã¤ã¹ãã¯ã»ã«ã®é«è§£å度ãæã¤å ´åãelva-fairy-640w.jpg ã®ç»åãèªã¿è¾¼ã¾ãã¾ãã 640px ã®ç»å㯠93KB ã§ããã320px ã®ç»å㯠39KB ã§ãã
ã¢ã¼ããã£ã¬ã¯ã·ã§ã³
è¦ç´ããã¨ãã¢ã¼ããã£ã¬ã¯ã·ã§ã³ã®åé¡ã¯ã表示ãããç»åãç°ãªãç»å表示ãµã¤ãºã«åãããã«å¤æ´ããããã¨ãå«ã¿ã¾ãã ãã¨ãã°ããã¹ã¯ããããã©ã¦ã¶ã¼ã§è¦ãã¨ãã«ä¸å¤®ã«äººããã大ããªé¢¨æ¯ãã¦ã§ããµã¤ãã«è¡¨ç¤ºãã¦ããå ´åãã¢ãã¤ã«ãã©ã¦ã¶ã¼ã§ã¦ã§ããµã¤ãã表示ããã¨ç¸®å°ããã人ãã¨ã¦ãå°ããã¦è¦ãã«ããã®ã§æ ¼å¥½æªããªãã¾ãã ã¢ãã¤ã«ã§ã¯ã人ã«ãºã¼ã ã¤ã³ããããå°åã®ãã¼ãã¬ã¤ãç»åã表示ããã»ããããã§ãããã <picture> è¦ç´ ã¯ããã®ç¨®ã®è§£æ±ºæ³ãå®è£
ãããã¨ãå¯è½ã«ãã¾ãã
ãªãªã¸ãã«ã® not-responsive.html ã®ä¾ã«æ»ãã¨ãç»åãã²ã©ãã¦ã¢ã¼ããã£ã¬ã¯ã·ã§ã³ãå¿ è¦ãªãã®ãããã¾ãã
<img src="elva-800w.jpg" alt="ã¯ãªã¹ã¯ç«ã£ã¦å½¼ã®å¨ã¨ã«ããæ±ãã¦ãã¾ã" />
<picture> ã§ãããä¿®æ£ãã¾ãããã <video>ã<audio>ã¨åæ§ã«ã<picture> è¦ç´ ã¯ã©ããã¼ã§ããã©ã¦ã¶ã¼ã鏿ã§ããããã¤ãã®ç°ãªãã½ã¼ã¹ãæä¾ããããã¤ãã® <source> è¦ç´ ãå«ã¿ãæ¬¡ã«æ¥µãã¦éè¦ãª <img> è¦ç´ ãç¶ãã¾ãã responsive.html ã®ã³ã¼ãã¯æ¬¡ã®ããã«ãªãã¾ãã
<picture>
<source media="(width < 800px)" srcset="elva-480w-close-portrait.jpg" />
<source media="(width >= 800px)" srcset="elva-800w.jpg" />
<img src="elva-800w.jpg" alt="ã¯ãªã¹ã¯ç«ã£ã¦å½¼ã®å¨ã¨ã«ããæ±ãã¦ãã¾ã" />
</picture>
<source>è¦ç´ ã«ã¯ã¡ãã£ã¢æ¡ä»¶ãå«ã¾ãã¦ããmedia屿§ãå«ã¾ãã¦ãã¾ãã æåã® srcset ã®ä¾ã®ããã«ããããã®æ¡ä»¶ã¯ã©ã®ç»åã表示ãããããæ±ºå®ãããã¹ãã§ãããæåã«çãè¿ããã®ã表示ããã¾ãã ãã®å ´åããã¥ã¼ãã¼ãå¹ ã 800 ãã¯ã»ã«æªæºã®å ´åãæåã®<source>è¦ç´ ã®ç»åã表示ããã¾ãã ãã¥ã¼ãã¼ãå¹ ã 800 ãã¯ã»ã«ä»¥ä¸ã§ããã°ã2 çªç®ã®ãã®ã«ãªãã¾ããsrcset屿§ã«ã¯ã表示ããç»åã¸ã®ãã¹ãå«ã¾ãã¾ãã ä¸è¨ã®<img>ã§è¦ãããã«ã<source>ã¯è¤æ°ã®ç»åãåç §ããsrcset屿§ã¨sizes屿§ãã¨ããã¨ãã§ãã¾ãã ãããã£ã¦ã<picture>è¦ç´ ã§è¤æ°ã®ç»åãæä¾ãããã¨ãã§ãã¾ãããããããã®ç»åãè¤æ°ã®è§£ååº¦ã§æä¾ãããã¨ãã§ãã¾ãã ç¾å®çã«ã¯ããã®ç¨®ã®ãã¨ãé常ã«é »ç¹ã«ããããã¨ã¯æããªãã§ãããã- ãã¹ã¦ã®å ´åã§ã
<img>è¦ç´ ã«srcã¨altãä»ãã¦</picture>ã®ç´åã«ç½®ãå¿ è¦ãããã¾ãã ããããªãã¨ç»åã¯è¡¨ç¤ºããã¾ããã ããã¯ã¡ãã£ã¢æ¡ä»¶ã®ã©ãã true ãè¿ããªãå ´å(ãã®ä¾ã§ã¯ 2 çªç®ã®<source>è¦ç´ ãå®éã«åé¤ã§ãã)ãã<picture>è¦ç´ ããµãã¼ãããªããã©ã¦ã¶ã¼ã®ä»£æ¿ã«é©ç¨ãããããã©ã«ãã®ã±ã¼ã¹ãæä¾ãã¾ãã
ãã®ã³ã¼ãã§ã¯ã以ä¸ã«ç¤ºãããã«ãåºãç»é¢ã¨çãç»é¢ã®ä¸¡æ¹ã«é©åãªç»åã表示ãããã¨ãã§ãã¾ãã


ã¡ã¢:
media 屿§ã¯ãã¢ã¼ããã£ã¬ã¯ã·ã§ã³ã®ã·ããªãªã§ã®ã¿ä½¿ç¨ãã¦ãã ããã media ã使ç¨ããå ´åã¯ãsizes 屿§å
ã§ã¡ãã£ã¢æ¡ä»¶ãæå®ããªãã§ãã ããã
ãªã CSS ã JavaScript ã使ã£ã¦å®ç¾ã§ããªãã®ã
ãã©ã¦ã¶ã¼ããã¼ã¸ã®èªã¿è¾¼ã¿ãéå§ããã¨ãã¡ã¤ã³ã®ãã¼ãµã¼ããã¼ã¸ã® CSS 㨠JavaScript ãèªã¿è¾¼ãã§è§£éããåã«ãç»åã®ãã¦ã³ãã¼ãï¼å
èªã¿ï¼ãéå§ãã¾ãã ããã¯ä¾¿å©ãªãã¯ããã¯ã§ãå¹³åãã¦ãã¼ã¸èªã¿è¾¼ã¿æéã® 20ï¼
ã忏ãã¾ãã ããããã¬ã¹ãã³ã·ãç»åã§ã¯å½¹ã«ç«ã¡ã¾ããã ãã®ãããsrcset ã®ãããªè§£æ±ºæ³ãå®è£
ããå¿
è¦ãããã¾ãã ãã¨ãã°ã <img> è¦ç´ ãèªã¿è¾¼ãã§ãã JavaScript ã§ãã¥ã¼ãã¼ãã®å¹
ãæ¤åºããå¿
è¦ã«å¿ãã¦å
ã®ç»åãããå°ããªãã®ã«åçã«å¤æ´ãããã¨ã¯ã§ãã¾ããã ããã¾ã§ã«ã¯ãå
ã®ç»åãæ¢ã«èªã¿è¾¼ã¾ãã¦ãã¦ãããã«å°ããç»åãèªã¿è¾¼ããã¨ã«ãªãã¾ãã ããã¯ãã¬ã¹ãã³ã·ãç»åã®æ¡ä»¶ã§ã¯ããã«æªåãã¾ãã
èªåèªèº«ã®ã¬ã¹ãã³ã·ãç»åã®å®è£
ãã®æ¼ç¿ã§ã¯ãåæ°ãåºãã¦ãåºæ¬çã«ã¯èªåèªèº«ã§åãçµãã§ããã ããã¨ãæå¾
ãã¦ãã¾ãã<picture> ã使ç¨ãã¦ãèªåèªèº«ã§ãã¶ã¤ã³ãã縦é·ç»é¢ï¼æ¨ªé·ç»é¢ã®ã¹ã¯ãªã¼ã³ã·ã§ãããå®è£
ããããã« srcset ã使ç¨ããè§£å度åãæ¿ãã®ä¾ã使ãã¦ãã ããã
- èªåã®ã³ã¼ããæ ¼ç´ããããã® HTML ãæ¸ãã¾ãããï¼å¿
è¦ã«å¿ãã¦
not-responsive.htmlãåºçºç¹ã¨ãã¦ä½¿ç¨ããï¼ã - ã©ããããç´°ããç´ æ´ãããåºãç»é¢ã®é¢¨æ¯ç»åãæ¢ãã¦ãã¾ãããã ã°ã©ãã£ãã¯ã¨ãã£ã¿ã¼ã使ç¨ãã¦ã¦ã§ããµã¤ãºã®ç»åã使ãããããããªãã³ã°ãã¦ãã£ãã¼ã«ãæ¡å¤§ããå°ããªé¨åã表示ãã2 çªç®ã®ç»åã使ãã¾ãããï¼ç´ 480px ã®å¹ ãããã«é©ãã¦ãã¾ãï¼ã
<picture>è¦ç´ ã使ç¨ãã¦ãã¢ã¼ããã£ã¬ã¯ã·ã§ã³ç»ååãæ¿ããå®è£ ãã¾ãããã- ãµã¤ãºã®ç°ãªãè¤æ°ã®ç»åãã¡ã¤ã«ã使ãããããããåãç»åã表示ãã¾ãããã
srcset/sizesã使ç¨ãã¦ã端æ«ã®è§£å度ã«å¿ãã¦åããµã¤ãºã®ç»åãç°ãªãè§£ååº¦ã§æä¾ãããããã¥ã¼ãã¼ãã®å¹ ã«å¿ãã¦ç°ãªããµã¤ãºã®ç»åãæä¾ããããããã¨ãã§ããè§£å度ã¹ã¤ããã£ã¼ã®ä¾ããã¾ãããã
ã¾ã¨ã
ã¬ã¹ãã³ã·ãç»åã®è§£èª¬ã¯ä»¥ä¸ã§ããæ°ãããã¯ããã¯ã楽ããã§ããã ããã§ãããããããããã¨ãã¦ãããã§å¦ãã§ããã2 ã¤ã®ç°ãªãåé¡ãæ¯ãè¿ãã¾ãããã
- ã¢ã¼ããã£ã¬ã¯ã·ã§ã³: ç°ãªãã¬ã¤ã¢ã¦ãã§ããªãã³ã°ãããç»åãæä¾ãããã¨ããåé¡ â ä¾ãã°ããã¹ã¯ãããã¬ã¤ã¢ã¦ãã§ã¯ã·ã¼ã³å
¨ä½ãè¡¨ãæ¨ªé·ã®ç»åããã¢ãã¤ã«ã¬ã¤ã¢ã¦ãã§ã¯ä¸å¿ã®è¢«åä½ã«ãºã¼ã ã¤ã³ãã縦é·ã®ç»åã«ããç»åãªã©ã§ããããã¯ã
<picture>è¦ç´ ã使ç¨ãã¦è§£æ±ºã§ãã¾ãã - è§£å度åãæ¿ã: çãç»é¢ã®ç«¯æ«ã§ã¯ããã¹ã¯ãããç»é¢ã®ãããªå·¨å¤§ãªç»åãå¿
è¦ã¨ããªããããå°ããªç»åãã¡ã¤ã«ãé
ä¿¡ãããã¨ããåé¡ â å¿
è¦ã«å¿ãã¦ç°ãªãè§£å度ã®ç»åãé«å¯åº¦ãä½å¯åº¦ã®ç»é¢ã«è¡¨ç¤ºãããå ´åãããã¾ãã ããã¯ããã¯ã¿ã¼ã°ã©ãã£ãã¯ã¹ï¼SVG ç»åï¼ã¨
srcsetã¨sizes屿§ã使ç¨ãã¦è§£æ±ºã§ãã¾ãã
é¢é£æ å ±
- å¦ç¿: ã¬ã¹ãã³ã·ããã¶ã¤ã³
- Jason Grigsby ã®ã¬ã¹ãã³ã·ãç»åã®åªããç´¹ä» (è±èª)
- ã¬ã¹ãã³ã·ãç»å: è§£å度ã夿´ããã ãã®å ´åã¯ãsrcset ã使ã â ãã©ã¦ã¶ã¼ãã©ã®ç»åã使ç¨ãããã®è©³ç´°ãªèª¬æãå«ã¾ãã¦ãã¾ã(è±èª)
<img><picture><source>