Для тех, кто заботится о решении, использующем PNG-спрайты, это именно то, что вы можете сделать. Чтобы обеспечить плавную визуализацию спрайтов на мобильных (а также экранах с высоким разрешением) устройствах, нам нужно увеличенное изображение (размером примерно в 2 раза), например: для обычного экрана требуется ширина листа спрайтов 500 пикселей, требуется как минимум еще один с шириной 1000 пикселей ).
Все background-position
и background-size
одинаковы на всех устройствах (мобильные и настольные ПК), единственное отличие здесь - background-image
. На настольных ПК вы можете использовать обычную (маленькую) таблицу спрайтов, тогда как на мобильных телефонах вы можете использовать более крупную (как упомянуто выше).
Вот 2 фрагмента кода CSS, применяемые для настольных ПК и мобильных телефонов:
Это общее CSS:
.item {
background-position: 0px 0px;
background-size: 500px 300px;
background-repeat: no-repeat;
}
Это применяется для настольных ПК :
.item {
background-image: url(your_normal_sprites_500.png);
}
Это применимо для мобильных телефонов :
.item {
background-image: url(your_large_sprites_1000.png);
}
Для программного переключения стиля / css для настольных компьютеров / мобильных устройств мы можем воспользоваться window.devicePixelRatio
. Это не поддерживается в некоторых старых браузерах, но теперь оно должно быть доступно в большинстве популярных современных браузеров.
var isHiResScreen = (window.devicePixelRatio || 1) > 1;
if(isHiResScreen){
//pick style for mobile
}
else {
//pick style for desktop pc
}
Конечно, вы должны рассмотреть возможность использования таблицы спрайтов SVG, если это возможно, как @ Dejan.S упомянул в своей статье. комментарии (и, конечно, я знал об этом благодаря ему). Это очень многообещающе:)