Задать вопрос
@Dark19

Как правильно верстать под ретину?

Столкнулся с проблемой верстки под ретину, раньше никогда под неё не верстал. Подскажите:
1) в каких единицах измерения лучше всего верстать, может кто какие техники или статьи подскажет для этого? Последнюю верстку делал в rem, и дублировал в px для старых браузеров, потом просто на соответствующем dpr менял размер шрифта.

2) ещё где-то слышал, что лучше dpr задавать от 1.5, но не знаю почему так, ведь ретина идет от 2 dpr, может кто пояснит?

3) задавал медиа такой: media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 192dpi), правильно ли это? Какие есть вообще dpr, dpi? может кто даст правильные медиа для различных dpr, dpi или статью на эту тему?

4) где можна потестить под ретину кроме хрома (если нету ретина экрана)? В хроме не всегда правильно показывает.

5) ну и конечно же как правильно обрабатывать изображения для ретины если они растровые? Простой вариант видел это в js проверять:
var retina = 'devicePixelRatio' in window && window.devicePixelRatio == 2 ? true : false;
if(retina){
        $(window).load(function() {
        var images = $('.js-img-retina img');
        images.each(function(i) {
            $(this).height($(this).height() / 1.5);
        });
        });
    }


или же в html писать так:
<img src="images/image.jpg" srcset="images/image@2x.jpg 2x" alt="img">

или же использовать тег picture, но более старыми браузерами не поддерживается.
  • Вопрос задан
  • 3882 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
pm_wanderer
@pm_wanderer
junior-HTML
Ретина только на картинки влияет, делая их размыленными. Самый простой способ - бери все изображения с увеличенным в 2 раза размером.
Например нужна картинка 100 на 100 пикселей на сайте - бери картинку 200 на 200 и указывай ей размер в css 100x100.
Таким образом ты заставишь ретина-дисплей отображать картинку с двойной плотностью пикселей.

Есть еще экраны с х3 или х4 плотностью, но я не замечал стлной разницы в качестве изображений на них, так что можно забить.

Если хочешь немного увеличить производительность и скорость загрузки сайта - можешь определять плотность пикселей и выдавать под ретину большие картинки, а под простые экраны - обычные. Я лично тоже забил на этот геморрой, так как в целом простота поддерживаемости кода и удобство его написания перевешивают плюсы от увеличения производительности.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы