Я провел много исследований в Интернете, и я все еще не уверен, как справляться с разной плотностью экрана в моем веб-приложении. Единственный полезный вопрос и ответ на этом сайте, который я нашел, это следующее: Получение размера физического экрана/dpi/плотности пикселей в Chrome на Android
Согласно наивысшему рейтингу, "50 пикселей должны выглядеть примерно одинаково на всех мобильных устройствах, это может немного измениться, но CSS Pixel - наш независимый от устройства способ создания согласованных документов и пользовательских интерфейсов"
Это правда? Возможно, для большинства мобильных устройств это правда, я протестировал свое приложение на 2 мобильных телефонах, один с 144ppi и другими 288ppi, и он выглядел примерно так же. Но на рабочем столе, однако, он намного больше. Пиксель CSS примерно на 50% больше на рабочем столе. Это проблема, потому что даже когда у вас есть отдельный дизайн для больших и маленьких экранов, существует множество мобильных устройств, которые следует рассматривать как большой экран, например, планшет в ландшафтном режиме. Итак, скажем, вы создаете что-то для рабочего стола, только чтобы быть разочарованным, что он выглядит на 50% меньше на планшетах.
Мне кажется, что что-то не так с отношением пикселей устройства. Я использовал этот сайт для проверки своих экранов: https://bjango.com/articles/min-device-pixel-ratio/ Экран ноутбука 96dpi, -webkit-min-device-pixel-ratio = 1.0 Смартфон - 144dpi, а соотношение пикселей устройства - 1,5.
Таким образом, теоретически, согласно этой информации, элемент должен отображаться на мобильном. 144/1,5 = 96 Но это не так. Он как DPR работает неправильно.
Update1: Я нашел это на MDN
Отношение по умолчанию зависит от плотности дисплея. На дисплее с плотность менее 200dpi, отношение 1,0. На дисплеях с плотностью от 200 до 300 точек на дюйм, отношение равно 1,5. Для дисплеев с плотностью более 300 точек на дюйм, отношение представляет собой целостный пол (плотность/150dpi). Заметка что коэффициент по умолчанию равен true, только если масштаб просмотра равен 1. В противном случае связь между пикселями CSS и пикселями устройства зависит от текущего уровня масштабирования.
Я не знаю, все ли это применимо ко всем устройствам, но в моем примере это похоже. Это очень плохо. 50% разница огромна. Я не могу поверить, что в Интернете нет ничего лучшего. Странно и то, что отношение webkit-min-device-pixel составляет 1,5, но на самом деле это 1,0
Update2
Хорошо, поэтому я начинаю щедрость. Я просто хочу получить некоторые ответы, лучшие практики, другие возможные случаи диспропорций пикселей CSS, некоторые ссылки. Все, что могло бы помочь мне в этой ситуации.
Позвольте мне снова заявить о своей конкретной проблеме. У меня есть кросс-платформенное веб-приложение, которое должно работать на рабочем столе, мобильных телефонах и планшетах. Из-за разной плотности пикселей каждый элемент приложения выглядит примерно на 50% больше на экране ноутбука 96 точек на дюйм, чем на мобильном устройстве (144 dpi). Одна вещь, которая меня действительно интересует, - это то, почему даже window.devicePixelRatio = 1.5 для этого устройства, браузер рассматривает ее так, как будто она была 1.0 (иначе она будет выглядеть так же, как на рабочем столе).
Я использую один дизайн для рабочего стола и планшета, разрешение не имеет значения. Мое веб-приложение является автономным, поэтому пользователь настольного компьютера может установить ширину окна как 800px. Но все будет слишком большим на рабочем столе по сравнению с планшетом. Мне придется устанавливать разные размеры на элементы на планшете и на рабочем столе. Одна вещь, которая приходит мне на ум - использовать медиа-запрос, (min-device-pixel-ratio: 1.5) установит стиль для мобильных устройств.
Итак, у меня есть возможное обходное решение, но я хотел бы узнать больше о несоответствиях пикселов CSS. Это дело только для мобильных или настольных компьютеров или есть еще проблемы? Мне кажется, что это более или менее одинаково на мобильных устройствах, но я не могу его проверить. Мне хотелось бы обсудить эту тему, другие возможные обходные пути, передовые методы, некоторые ресурсы. Я искал, и я не мог найти что-либо в Интернете. Все просто говорят: "CSS-пиксель - это наш независимый от плотности пиксель", но вот правда: