Разрешение (resolution) — количество физических пикселей на экране устройства, обычно приводится нерешённым, что дополнительно говорит о соотношении сторон.
Плотность пикселей (pixel density) — количество пикселей, которое помещается в один линейный дюйм.
Измеряется в ppi (pixels per inch), относится к дисплеям, матрицам, сканерам. Тогда как dpi (dots per inch) имеет отношение к печати и прямо не соотносится с ppi.
Пиксельное соотношение (pixel ratio) — отношение физического пикселя к виртуальному. Может меняться в зависимости от браузера.
Маркетинговый термин Apple, описывающий устройства с высоким разрешением и пиксельным соотношением больше, чем 1. То есть виртуальный пиксель увеличивается по отношению к физическому.
В терминологии Android, такие устройства называются
<meta name="viewport" content="width=device-width,target-densityDpi=device-dpi">
Пока только работает на Android и в Opera Mobile
@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:144dpi) { … }
@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi) { … }
Откуда цифры: 96dpi = 1dppx
@media (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:3/2),(min-resolution:1.5dppx) {E { something }}
function isRetina(){return (('devicePixelRatio' in window &&devicePixelRatio > 1) || ('matchMedia' in window &&!matchMedia('(-moz-device-pixel-ratio:1.0)').matches));}
<picture><source srcset="small.jpg 1x, large.jpg 2x"><source media="(min-width:18em)"srcset="medium.jpg 1x, large.jpg 2x"><img src="small.jpg"></picture>
E {background-image:url(picture.png);background-image:image-set(url(small.jpg) 1x,url(medium.jpg) 2x);}
E {background:url(100px.png) no-repeat;background-size:50px 50px;}
bg-size хромает, хотя 80% по мируE {background:url(50px.png) no-repeat;}@media (retina) {E { background:url(100px.png) no-repeat; }}
E {background:url(image.png) no-repeat;background:rgba(0, 0, 0, 0)url(image.svg) no-repeat;}
E {background:url(image.png) no-repeat;}.inlinesvg E {background:url(image.svg) no-repeat;}
width и height нужно умножить на пиксельное соотношение, но установить оригинальные CSS-размерыctx.webkitBackingStoreRatio < 2