Простой способ оптимизировать сайт для работы с Retina изображениями
особенности компоновки спрайтов (sprites)

Ни для кого не секрет, что количество устройств, поддерживающих высокое разрешение, aka retina постоянно растет.
Планшеты, макбуки с ретиной, телефоны - у всех сверхчеткое разрешение, а ваш сайт все еще покрыт огромным количеством
пикселей. Не грустим, все что нам нужно сделать - создать новые картинки. И их размер должен быть ровно в 2 раза больше.
Простого способа переделать все графические элементы не существует. Я, конечно, надеюсь что для начала у вас все
еще есть оригинальные векторные изображения. Тем не менее, проблема кроется не в том, что вам придется создавать все
графические элементы заново. Проблема заключается в том, что вам потребуется поддерживать и старые устройства, для которых
не требуются детальные изображения. Более того, вы не можете изменять ширину или высоту div контейнеров, содержащих
фоновые графические элементы, так как вы всего лишь получите большое изображение, пестрящее “огромными” пикселями.
Преобразуем ваши спрайты для работы с ретиной
Первая и самая важная вещь - графические элементы должны быть ровно в 2 раза больше в размере, для того, чтобы данный
способ сработал.
Пример верстки иконок.
|
|
Сопутствующие стили, которые потребуется добавить. Мы используем less, о нем много информации в гугле ;)
|
|
Позиционируем иконки
|
|
Но все это базовые вещи. Теперь перейдем к интересному
Мы добавим @media запрос, который будет ориентироваться только на экраны с retina дисплеем. Для них мы изменимbackground-image для другого, который будет в 2 раза больше. Мы добавим суффикс @2x, чтобы организовать наши изображения.
После этого мы установим параметр background-size, чтобы размер картинки совпал с размером спрайта для обычных машин или
половина ширины спрайта для ретины. Именно на этом этапе очень важно, что спрайт с ретиной ровно в 2 раза больше, чем
обычный спрайт. Иначе, картинки не будут отображаться правильно.
|
|
Вуаля, все готово
Теперь ваш сайт готов обслуживать девайсы с ретиной. Заметьте, что вы совершенно не использовали Javascript, да и
вообще никакой магии.