Адаптивная графика и магия srcset: чтобы картинки выглядели чётко везде!
Привет, кодогении и поклонники прекрасного! 🎨 Сегодня мы отправимся в путешествие по миру адаптивной графики. Узнаем, как сделать так, чтобы наши изображения выглядели так же шикарно на ретина-дисплеях, как и на обычных экранах. Пристегните ремни — будет интересно!
Ретина-дисплеи: что это и с чем их едят?
Ретина-дисплеи (или просто устройства с высокой плотностью пикселей) — это экраны, где пиксели такие мелкие, что глаз их уже не различает. Картинка получается очень чёткой, и даже мельчайшие детали выглядят превосходно. Звучит круто, но есть одна проблема: наши привычные растровые изображения могут начать выглядеть размыто, как будто кто-то забыл надеть очки…
Поведение разных веб-элементов на высокочётких экранах
Текст: Шрифты ведут себя отлично! Они масштабируются и рендерятся чётко. Можно вздохнуть с облегчением и продолжать использовать свои любимые шрифты.
Цвета: Здесь всё тоже в порядке. Цвета остаются насыщенными и яркими, как вы и задумывали.
Растровые изображения: Вот тут начинаются приключения. Поскольку они состоят из фиксированного числа пикселей, на ретина-дисплеях они могут выглядеть слегка мутными, как в утреннем тумане.
Векторные изображения: Наши герои! SVG и прочие векторные форматы масштабируются бесконечно без потери качества. Они всегда выглядят чётко, как линейка.
srcset: секретное оружие веб-разработчика
Чтобы наши растровые картинки выглядели отлично на всех устройствах, нам на помощь приходит атрибут srcset. Это как дать браузеру несколько вариантов изображения и сказать: “Выбери тот, который тебе больше по нужен!”
Как это работает?
Представим, что у нас есть изображение котика (куда же без него):
<img src="cat.png" alt="Милый котик" />
Если мы хотим, чтобы на ретина-дисплеях отображалось более чёткое изображение, добавим srcset:
600w, 1200w, 1800w — ширина изображения в пикселях.
sizes — подсказывает браузеру, какой размер изображения нужен при разных ширинах экрана.
Почему это круто?
Пользователи с ретина-дисплеями увидят чёткое изображение без размытия.
Пользователи с обычными экранами не будут загружать лишние мегабайты.
Внимание! srcset не предназначен для кадрирования - внутри всегда одна картинка с разным разрешением. Не надо её обрезать или вообще подставлять другуое изображение.
Новые теги - <picture> и <source>
— это обёртка для целого изображения. Как кастинг - вы даёте браузеру несколько вариантов, а он выбирает лучший под ситуацию
— это инструкции внутри , говорящие, какое изображение использовать при определённых условиях
Браузер загрузит image.webp, если умеет, иначе — image.jpg. Ваши изображения будут выглядеть потрясающе, а пользователи — довольны!
А как же фавиконки?
Они точно должны быть в разных размерах. Тут дело не только в разрешении экрана, но и в самих устройствах. Иконки могут по-разному отображаться в разных браузерах, поисковиках и операционных системах.
Лайфхак: как и другие картинки, фавиконки можно “генерировать” - есть инструменты, которые создадут вам набор иконок под все устройства из вашей картинки.
Итоги: делаем сайты красивыми на любых устройствах
Используйтеsrcset для растровых изображений, чтобы обеспечить чёткость на всех экранах.
Лучше векторные изображения (SVG) для логотипов, иконок и простых графических элементов.
Текст и цвета обычно не требуют дополнительной настройки для ретина-дисплеев.
Проверяйте свой сайт на разных устройствах, чтобы убедиться, что всё выглядит превосходно. Можно воспользоваться специальными инструментами.
Теперь вы вооружены знаниями и готовы покорять мир высокочётких дисплеев! Ваши изображения будут выглядеть так же классно, как вы этого хотите, а пользователи будут довольны и счастливы.
Так что вперёд, добавьте немного волшебства srcset в ваш проект, и пусть ваши котики (и не только) будут чёткими на всех экранах! 🌟