HTML <meta name="viewport"> 屿§å¤
viewport 㯠<meta> è¦ç´ ã® name 屿§ã®å¤ã§ããã¥ã¼ãã¼ããã©ã®ããã«å¤åãããã«ã¤ãã¦ã®ãã³ããä¸ãã¾ãã
æå®ãããå ´åã<meta> è¦ç´ ã® content 屿§ã§ã¯ãã«ã³ãåºåãã§ 1 ã¤ä»¥ä¸ã®å¤ã¨ãã¦æå®ãã¦ããã¥ã¼ãã¼ãã«é¢ããåä½ãå®ç¾©ãããã¨ãã§ãã¾ãã
使ç¨ä¸ã®ã¡ã¢
<meta name="viewport"> è¦ç´ ã«ã¯ã次ã®è¿½å 屿§ãããã¾ãã
content-
content屿§ã¯å®ç¾©ããå¿ è¦ãããããã®å¤ã¯ãã¥ã¼ãã¼ãé¢é£ã®ãã¾ãã¾ãªåä½ãè¨å®ãã¾ãã å¤ã¯ãkey=valueã®å½¢å¼ã§æå®ããã 1 ã¤ä»¥ä¸ã®ãã¼ã¨å¤ã®çµãããªããã«ã³ãåºåãã®ãªã¹ãã§ãã以ä¸ã®ãã¼ãå®ç¾©ããã¦ãã¾ããwidth-
ãã¥ã¼ãã¼ãã®å¹ ã®ï¼æå°ï¼ãã¯ã»ã«æ°ãå¶å¾¡ãã¾ãï¼ãã¥ã¼ãã¼ãã®å¹ ã¨ç»é¢ã®å¹ ãåç §ï¼ã1 ãã 10000 ã¾ã§ã®æ£ã®å¤ã®ãã¯ã»ã«æ°ï¼
width=600ãªã©ï¼ã¾ãã¯ç¹å¥ãªå¤device-widthï¼ç«¯æ«ç»é¢ã®ç©çãµã¤ãºã CSS ãã¯ã»ã«æ°ã§è¡¨ãããã®ï¼ã«è¨å®ã§ãã¾ãããã®å¤ã¯vwã®åä½ã®å¤ã決å®ãã¾ãã height-
ãã¥ã¼ãã¼ãã®é«ãã®ï¼æå°ï¼ãã¯ã»ã«æ°ãå¶å¾¡ãã¾ãï¼ãã¥ã¼ãã¼ãã®å¹ ã¨ç»é¢ã®å¹ ãåç §ï¼ã1 ãã 10000 ã¾ã§ã®æ£ã®å¤ã®ãã¯ã»ã«æ°ï¼
height=400ãªã©ï¼ã¾ãã¯ç¹å¥ãªå¤device-heightï¼ç«¯æ«ç»é¢ã®ç©çãµã¤ãºã CSS ãã¯ã»ã«æ°ã§è¡¨ãããã®ï¼ã«è¨å®ã§ãã¾ãããã®å¤ã¯vhåä½ã®å¤ã決å®ãã¾ãã initial-scale-
端æ«ã®å¹ ï¼ç¸¦é·ç»é¢ã®
device-widthãæ¨ªé·ç»é¢ã®device-heightï¼ã¨ãã¥ã¼ãã¼ãã®å¯¸æ³ã®æ¯çãå®ç¾©ãã¾ãã ããã¯0.0ãã10.0ã¾ã§ã®æ°å¤ã§ãã maximum-scale-
æå¤§ãºã¼ã åçãå®ç¾©ãã¾ãã ããã¯
minimum-scale以ä¸ã§ããå¿ è¦ãããã¾ããããããå°ããå ´åãåä½ã¯æªå®ç¾©ã«ãªãã¾ãã ãã©ã¦ã¶ã¼ã®è¨å®ã§ã¯ãã®ã«ã¼ã«ãç¡è¦ãããã¨ãã§ãã iOS10 以éã§ã¯ããã©ã«ãã§ç¡è¦ããã¾ãã ããã¯0.0ãã10.0ã¾ã§ã®æ°å¤ã§ãã minimum-scale-
æå°ãºã¼ã ã¬ãã«ãå®ç¾©ãã¾ãã ããã¯
maximum-scale以ä¸ã§ãªããã°ãªãã¾ãããããããªãã¨ãåä½ãæªå®ç¾©ã«ãªãã¾ãã ãã©ã¦ã¶ã¼ã®è¨å®ã§ã¯ãã®ã«ã¼ã«ãç¡è¦ãããã¨ãã§ãã iOS10 以éã§ã¯ããã©ã«ãã§ç¡è¦ããã¾ãã ããã¯0.0ãã10.0ã¾ã§ã®æ°å¤ã§ãã user-scalable-
è«çå¤ã§ãã¦ã¼ã¶ã¼ãã¦ã§ããã¼ã¸ããºã¼ã ã§ãããã©ããã示ãã¾ãã ãã©ã¦ã¶ã¼ã®è¨å®ã§ã¯ãã®ã«ã¼ã«ãç¡è¦ãããã¨ãã§ãã iOS10 以éã§ã¯ããã©ã«ãã§ç¡è¦ããã¾ãã ããã¯
yesã¾ãã¯noã®ã©ã¡ãããåããããã©ã«ãã§ã¯yesã§ããè¦å:
user-scalableãnoã«è¨å®ãã¦ãºã¼ã æ©è½ãç¡å¹ã«ããã¨ãå¼±è¦ã®ã¦ã¼ã¶ã¼ããã¼ã¸ã³ã³ãã³ããèªã¿åãçè§£ãããã¨ãã§ããªããªãã¾ããããã«ãWCAG ã§ã¯å°ãªãã¨ã 2 åã®æ¡å¤§çãè¦æ±ããã¦ãã¾ãããæåã®åãçµã¿ã¨ãã¦ã¯ 5 åã®ãºã¼ã ãæå¹ã«ãããã¨ãã§ãããã¨ãæ¨å¥¨ããã¾ããæ å ±ã¯ä»¥ä¸ãåç §ãã¦ãã ããã interactive-widget-
ä»®æ³ãã¼ãã¼ããªã©ã®å¯¾è©±å UI ã¦ã£ã¸ã§ããããã¼ã¸ã®ãã¥ã¼ãã¼ãã«åã¼ã广ãæå®ãã¾ãã ãã¼ã¯ã¼ãå¤
resizes-visualãresizes-contentãoverlays-contentã®ãããããæå®ãããã¨ãã§ãã¾ããresizes-visual: è¦è¦ãã¥ã¼ãã¼ãã®ãµã¤ãºã対話åã¦ã£ã¸ã§ããã«ãã£ã¦å¤æ´ããã¾ãããããããã©ã«ãå¤ã§ããresizes-content: ãã¥ã¼ãã¼ãã®ãµã¤ãºã対話åã¦ã£ã¸ã§ããã«ãã£ã¦å¤æ´ããã¾ããoverlays-content: ãã¥ã¼ãã¼ããè¦è¦ãã¥ã¼ãã¼ããã対話åã¦ã£ã¸ã§ããã«ãã£ã¦ãµã¤ãºã夿´ããã¾ããã
ãã¥ã¼ãã¼ãã®ãµã¤ãºã夿´ãããã¨ãåæå å«ãããã¯ã®ãµã¤ãºã夿´ããããããã£ã¦ãã¥ã¼ãã¼ãåä½ã®è¨ç®å¤ã«ãå½±é¿ãä¸ãã¾ãã
viewport-fit-
ã¦ã§ããã¼ã¸ã®è¡¨ç¤ºãããé¨åãå®ç¾©ãã¾ãã ãã¼ã¯ã¼ã
autoãcontainãcoverã®ããããã§ããauto: æåã®ã¬ã¤ã¢ã¦ãã®ãã¥ã¼ãã¼ãã«ã¯å½±é¿ãããã¦ã§ããã¼ã¸å ¨ä½ã表示ããã¾ããcontain: ãã¥ã¼ãã¼ãã¯ã表示é åå ã«åã¾ãæå¤§ã®é·æ¹å½¢ã«åããã¦å¤åããã¾ããcover: ãã¥ã¼ãã¼ãã¯ã端æ«ã®ç»é¢ã«åã¾ãããã«å¤åããã¾ãã éè¦ãªã³ã³ãã³ããç»é¢ã®å¤ã«è¡¨ç¤ºãããªãããã«ãsafe-area-inset-* 夿°ã使ç¨ãããã¨ãå¼·ããå§ããã¾ãã
ãã¥ã¼ãã¼ãã®å¹ ã¨ç»é¢ã®å¹
ãã©ã¦ã¶ã¼ã®ãã¥ã¼ãã¼ãã¯ãã¦ã§ãã³ã³ãã³ããè¦ããã¨ãã§ããã¦ã£ã³ãã¦ã®é åã§ãããã¥ã¼ãã¼ãã®ãµã¤ãºã¯ããã¼ã¸ã®ã³ã³ãã³ããã¬ã¤ã¢ã¦ãããåã«è¨ç®ããå¿ è¦ãããã¾ãããã¼ã¸ããã¥ã¼ãã¼ãããã¯ã¿åºãå ´åããã©ã¦ã¶ã¼ã¯ã¦ã¼ã¶ã¼ãã¹ã¯ãã¼ã«ãã¦ãã¹ã¦ã®ã³ã³ãã³ãã«ã¢ã¯ã»ã¹ã§ããããã«ã¹ã¯ãã¼ã«ãã¼ãæä¾ãã¾ããããã¥ã¼ãã¼ãã®ãµã¤ãºã¯ãã³ã³ãã³ããåã¾ãã¹ã空éï¼ç¹ã«æ°´å¹³æ¹åï¼ã®ç®å®ã¨ãªãã¾ãã
ä¸é¨ã®ã¢ãã¤ã«ç«¯æ«ããã®ä»ã®çãç»é¢ã§ã¯ãç»é¢ãããåºãä»®æ³ã¦ã£ã³ãã¦ã¾ãã¯ãã¥ã¼ãã¼ãã§ãã¼ã¸ãã¬ã³ããªã³ã°ããã¬ã³ããªã³ã°çµæã縮å°ãã¦ããã¹ã¦ãä¸åº¦ã«è¦ããã¨ãã§ããããã«ãããã®ãããã¾ããã¦ã¼ã¶ã¼ã¯ããã¼ã¸ã®ãã¾ãã¾ãªé¨åãããºã¼ã ããã³ãè¡ããã¨ã§ãã詳ããè¦ã¦ãããã¨ãã§ãã¾ããä¾ãã°ãã¢ãã¤ã«ç»é¢ã®å¹
ã 640px ã®å ´åããã¼ã¸ã¯ 980px ã®ä»®æ³ãã¥ã¼ãã¼ãã§ã¬ã³ããªã³ã°ããã 640px ã®ç©ºéã«åã¾ãããã«ç¸®å°ãããããããã¾ãããããã¯ããã¹ã¦ã®ãã¼ã¸ãã¢ãã¤ã«ç¨ã«æé©åããã¦ããããã§ã¯ãªããå°ããªãã¥ã¼ãã¼ãå¹
ã§ã¬ã³ããªã³ã°ããã¨å£ãã¦ãã¾ãï¼ãããã¯å°ãªãã¨ãè¦ãç®ãæªããªãï¼ããã«è¡ããã¾ãããã®ä»®æ³ãã¥ã¼ãã¼ãã¯ãã¢ãã¤ã«ç«¯æ«ã«æé©åããã¦ããªããµã¤ãå
¨è¬ããç»é¢ãçã端æ«ã§ãè¦ãããããããã®æ¹æ³ã§ãããããããã®ä»çµã¿ã¯ãã¡ãã£ã¢ã¯ã¨ãªã¼ã使ç¨ãã¦çãç»é¢ã«æé©åããã¦ãããã¼ã¸ã«ã¯ãã¾ãåãã¦ãã¾ãããä¾ãã°ãä»®æ³ãã¥ã¼ãã¼ãã 980px ã®å ´åã640px ã 480px 以ä¸ã§èµ·åããã¡ãã£ã¢ã¯ã¨ãªã¼ã¯çµ¶å¯¾ã«ä½¿ç¨ãããããããã¬ã¹ãã³ã·ããã¶ã¤ã³ææ³ã®æå¹æ§ãå¶éãã¦ãã¾ãã®ã§ãããã¥ã¼ãã¼ãã® <meta> è¦ç´ ã¯ããã®ãããªç»é¢ã®å
å´ãçã端æ«ã«ãããä»®æ³ãã¥ã¼ãã¼ãã®åé¡ãç·©åãããã®ã§ãã
ããããè¨å®ã§ã¯æ¬¡ã®ããã«ããã¥ã¼ãã¼ãã端æ«ã®å¹ ã«ä¸è´ãããã³ã³ãã³ãã 100% ãºã¼ã ã§è¡¨ç¤ºããããã«è¨å®ãã¾ãã
<meta name="viewport" content="width=device-width, initial-scale=1" />
ãµã¤ãã§ã¯ããã¥ã¼ãã¼ããç¹å®ã®ãµã¤ãºã«è¨å®ãããã¨ãã§ãã¾ããä¾ãã°ã"width=320, initial-scale=1" ã¨ããå®ç¾©ã¯ã縦é·ã¢ã¼ãã®å°ããªæºå¸¯é»è©±ã®ç»é¢ã«æ£ç¢ºã«ãã£ããããããã«ä½¿ç¨ãããã¨ãã§ãã¾ããããã¯ããã©ã¦ã¶ã¼ããã大ããªãµã¤ãºã§ãã¼ã¸ã表示ããªãå ´åã«åé¡ãçºçããå¯è½æ§ãããã¾ãããããä¿®æ£ããããã«ããã©ã¦ã¶ã¼ã¯è¦æ±ããã縮尺ã§ç»é¢ãåããããã«å¿
è¦ã§ããã°ãã¥ã¼ãã¼ãã®å¹
ãæ¡å¤§ããã¾ããããã¯ãç¹ã«å¤§ç»é¢ã®ç«¯æ«ã§ä½¿ç¨ããå ´åã«æç¨ã§ãã
åæã¾ãã¯æå¤§ã®ç¸®å°ºãè¨å®ãããã¼ã¸ã§ã¯ã width ããããã£ãå®éã«ã¯æå°ã®ãã¥ã¼ãã¼ãå¹
ã«å¯¾å¿ãããã¨ãæå³ãã¦ãã¾ããä¾ãã°ãã¬ã¤ã¢ã¦ãã«å°ãªãã¨ã 500 ãã¯ã»ã«ã®å¹
ãå¿
è¦ãªå ´åã以ä¸ã®ãããªãã¼ã¯ã¢ããã使ç¨ãããã¨ãã§ãã¾ããç»é¢å¹
ã 500 ãã¯ã»ã«ä»¥ä¸ããå ´åããã©ã¦ã¶ã¼ã¯ç»é¢ã«åãããããã«ï¼ãºã¼ã ã¤ã³ããã®ã§ã¯ãªãï¼ãã¥ã¼ãã¼ããæ¡å¤§ãã¾ãã
<meta name="viewport" content="width=500, initial-scale=1" />
ç»é¢ã®å¯åº¦
ç»é¢è§£å度ãä¸ããã人éã®ç®ã§ã¯åã ã®ãã¯ã»ã«ãèå¥ã§ããªããµã¤ãºã«ãªãã¾ãããä¾ãã°ãã¹ãã¼ããã©ã³ã®ç»é¢ã¯ãå°ããªç»é¢ã§ã 1920 ã 1080 ãã¯ã»ã«ï¼ã 400dpiï¼ä»¥ä¸ã®è§£å度ãæã£ã¦ããå ´åãã»ã¨ãã©ã§ãããã®ãããå¤ãã®ãã©ã¦ã¶ã¼ã¯ã CSS ããã¯ã»ã« ã 1 ã¤ã«å¯¾ãã¦è¤æ°ã®ãã¼ãã¦ã§ã¢ãã¯ã»ã«ã対å¿ããããã¨ã§ãããå°ããªç©çãµã¤ãºã§ãã¼ã¸ã表示ãããã¨ãã§ãã¾ããå½åã¯ãã¿ããæä½ã«æé©åãããå¤ãã®ã¦ã§ããµã¤ãã§ãã¦ã¼ã¶ããªãã£ã¨èªã¿åãå¯è½ãªãµã¤ãºã®åé¡ãçºçãã¾ããã
é« dpi ã®ç»é¢ã«ããã¦ã¯ãinitial-scale=1 ãæå®ãããã¼ã¸ã¯ããã©ã¦ã¶ã¼ã«å¹æçã«æ¡å¤§è¡¨ç¤ºããããã¨ã«ãªãã¾ããããã¹ãã¯æ»ããã§é®®æã«è¡¨ç¤ºããã¾ãããããããããç»åã¯ç»é¢ã®å
å´ã¾ã§è§£å度ãçãããããªãããããã¾ãããããããç»é¢ã«ããã¦ã¯ãããé®®æãªç»åãå®ç¾ããããã«ãã¦ã§ãéçºè
ã¯ç»åãã¬ã¤ã¢ã¦ãå
¨ä½ãæçµçãªãµã¤ãºãããé«ãåçã§è¨è¨ãã CSS ããã¥ã¼ãã¼ãããããã£ã使ç¨ãã¦ç¸®å°ãããã¨ãæ±ããããããããã¾ããã
ããã©ã«ãã®ãã¯ã»ã«æ¯ã¯ãç»é¢ã®å¯åº¦ã«ä¾åãã¾ããå¯åº¦ã 200dpi æªæºã®ç»é¢ã§ã¯ãæ¯ç㯠1.0 ã§ããå¯åº¦ã 200 ã 300dpi ã®ç»é¢ã§ã¯ãæ¯ç㯠1.5 ã§ãã 300dpi 以ä¸ã®ç»é¢ã®å ´åãæ¯çã¯æ´æ°ã® floor (density/150dpi) ã¨ãªãã¾ããããã©ã«ãã®æ¯çã¯ããã¥ã¼ãã¼ãã®ç¸®å°çã 1 ã«çããå ´åã«ã®ã¿é©ç¨ããããã¨ã«æ³¨æãã¦ãã ããããã以å¤ã®å ´åã¯ã CSS ãã¯ã»ã«ã¨ããã¤ã¹ãã¯ã»ã«ã®é¢ä¿ã¯ãç¾å¨ã®ãºã¼ã ã¬ãã«ã«ä¾åãã¾ãã
ä¾
>meta viewport ãµã¤ãºã®ä½¿ç¨
次ã®ä¾ã¯ããã¼ã¸ã端æ«ã®å¹ ã§è¡¨ç¤ºãããã¨ããã©ã¦ã¶ã¼ã«ç¤ºãã¾ãã
<meta name="viewport" content="width=device-width" />
ã¡ãã£ã¢ã¯ã¨ãªã¼ã«ãã viewport ã¡ã¿ã®ä½¿ç¨
次㮠content å¤ã§ã¯ãã¢ãã¤ã«ç«¯æ«ã®ããããªã©ã®è¡¨ç¤ºã®åãåããé¿ããã®ã«å½¹ç«ã¤ viewport-fit ã¨ã¨ãã«ãå
¨ç»é¢ã¢ã¼ãã使ç¨ããããã«ãã©ã¦ã¶ã¼ã«æç¤ºããè¤æ°ã®ãã¼ã¯ã¼ãã使ç¨ãã¦ãã¾ãã
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
対話åã® UI ã¦ã£ã¸ã§ããã®å½±é¿
ãã©ã¦ã¶ã¼ã®å¯¾è©±åã® UI ã¦ã£ã¸ã§ããã¯ããã¼ã¸ã®ãã¥ã¼ãã¼ããµã¤ãºã«å½±é¿ãä¸ããå¯è½æ§ãããã¾ããæãä¸è¬çãªä¾ãä»®æ³ãã¼ãã¼ãã§ãããã©ã¦ã¶ã¼ã使ç¨ãããªãµã¤ãºåä½ãå¶å¾¡ããã«ã¯ãinteractive-widget ããããã£ãè¨å®ãã¾ãã
ããã©ã«ãã§ãä»®æ³ãã¼ãã¼ãã¯è¦è¦çãã¥ã¼ãã¼ãã®ãµã¤ãºã®ã¿ãå¤åããããã¼ã¸ã®ã¬ã¤ã¢ã¦ãã«ã¯å½±é¿ãã¾ãããinteractive-widget ããããã£ã resizes-content ã«è¨å®ãããã¨ã§ãä»®æ³ãã¼ãã¼ãã®åå¨ã«å¿ãã¦ãã¼ã¸ã®ã¬ã¤ã¢ã¦ããé©å¿ããããã¨ãã§ãã¾ãã
<meta name="viewport" content="interactive-widget=resizes-content" />
仿§æ¸
| 仿§æ¸ |
|---|
| CSS Viewport Module Level 1 > # viewport-meta > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
- ç¨èªéã®ãã¥ã¼ãã¼ã
- Prepare for viewport resize behavior changes coming to Chrome on Android - developer.chrome.com
- Mobile viewports for responsive experiences - Adobe Experience League