Я думаю, вы можете неправильно понять, что на самом деле вам говорит devicePixelRatio
- удивительно, пиксель - это не пиксель!
Когда вы указываете размер пикселя в CSS, выне обязательно указание размера в физических пикселях.Вместо этого модуль CSS px
на самом деле представляет собой «независимый от устройства пиксель» (DIP), который относительно относительно DPI устройства:
Пиксельные единицы являются относительнымиразрешение устройства просмотра, т. е. чаще всего дисплей компьютера.Если плотность пикселей устройства вывода сильно отличается от плотности изображения на обычном дисплее компьютера, пользовательский агент должен масштабировать значения пикселей.
Эталонный пиксель определяется как 96 точек на дюйм (настройка DPI по умолчанию в Windows), поэтомуваш компьютер, правда, что 1 DIP (CSS px
) = 1 физический пиксель экрана.Кроме того, хотя старые устройства iOS имеют физический DPI 163, они по-прежнему используют 1 DIP = 1 пиксель.Однако на удвоенном разрешении iPhone 4, равном 326 DPI, 1 DIP = 2 пикселя экрана, о чем devicePixelRatio = 2
говорит вам.
Таким образом, строго говоря о разнице между iPhone 3 и iPhone 4,Элемент HTML со стилем { width:100px; height:100px; }
должен отображаться примерно одинакового размера на старых устройствах и на iPhone 4 с более высоким разрешением, поскольку он изменяет размеры пикселей.
Таким образом, нет причин для использования скриптадля учета устройств с высоким разрешением;это должно просто работать.