Используйте фавиконки правильно / Хабр
Фавиконка (favicon) — это иконка, которая отображается во вкладке браузера перед названием страницы. Также эта иконка отображается в закладках и на рабочем столе для веб-приложений.
Фавиконка при установке веб-приложенияФавиконка на вкладке в браузереПодключение
Чтобы иконка начала отображаться, на вкладке нужно подключить файл с графическим отображением иконки. Для правильного подключения иконки нужно использовать обязательные требования браузера и минимальный набор фавиконок, который мы сейчас подробно рассмотрим.
Почему именно набор, а не одну иконку? Дело в том, что браузеры и экраны развиваются и не стоят на месте. Чем современнее браузер, тем более современный формат он может поддерживать. Например, вы можете подумать, что можно подключить только одну SVG-иконку и браузер уже сам правильно отрисует её, но не все браузеры до сих пор поддерживают SVG-формат для фавиконок. На таблицу совместимости SVG-фавиконок можно посмотреть тут.
Эта статья — фрагмент из учебника по вёрстке с курса «HTML и CSS. Профессиональная разработка сайтов».
Обязательная фавиконка
Все — старые и новые — веб-серверы и браузеры поддерживают .ico-формат.
Для подключения нужно добавить в <head>:
<head> <link rel="icon" href="favicon.ico"><!-- 32×32 --> </head>
Обратите внимание на две детали: размер и расположение.
Размер. В интернете можно найти информацию, что нужно подключать фавиконку в формате .ico в размере 16×16. Это так и не так. Дело в том, что контейнер ico динамический и он может изменять размеры «на лету». Поэтому браузеры, которые понимают размер 16×16, сами сожмут 32×32 до необходимого. В каком случае нужно создавать favicon.ico в размере 16×16? Когда фавиконка размером 32×32 при сжатии начнёт мылиться (будет нечёткой). Это можно проверить вручную, сжав фавиконку с 32×32 до 16×16. Если размыливание картинки произошло, то без дизайнера не обойтись и придётся отрисовывать фавиконку вручную в графическом редакторе.
Расположение. Фавиконку в формате ico обязательно нужно класть в корень проекта, как это показано в примере выше. Дело в том, что любой веб-сервер незаметно для вас всегда ищет favicon.ico в корне проекта и пытается её подключить к сайту.
Дополнительные необходимые фавиконки
Расположение. Только favicon.ico должна лежать в корне проекта. Остальные иконки могут лежать в любом месте в проекте, например:
project/ favicon.ico img/ 180.png 192.png 512.png icon.svg
Или можно сгруппировать все фавиконки, чтобы отделить от других изображений в проекте:
project/ favicon.ico img/ favicons/ 180.png 192.png 512.png icon.svg
SVG
Если современный веб-браузер умеет работать с векторными фавиконками, то этот формат более предпочтительный: меньший вес, наилучшее качество, поддерживает смену тем, не нужно указывать размер.
Подключение точно такое же, как и для favicon. ico, только нужно добавить тип, чтобы браузер понимал, с чем имеет дело:
<head> <link rel="icon" href="images/favicons/icon.svg" type="image/svg+xml"> </head>
Для устройств Apple
Apple пошли по другому сценарию развития и предложили собственные размеры фавиконок для своих устройств — iPhone и iPad. Формат для подключения favicon для Apple поддерживают все современные браузеры.
Самым востребованным размером для старых устройств фавиконок стал размер 180×180. Давайте посмотрим пример подключения:
<head> <link rel="apple-touch-icon" href="images/favicons/apple.png"><!-- 180×180 --> </head>
Подключив такую иконку, мы также поддержим старые устройства, которые не умеют работать с таким большим размером фавиконки и уменьшать её до нужных размеров.
Устройства Apple работают и с большими размерами иконок, но так получилось, что устройства, которые понимают большие размеры, можно подключать более современным способом с помощью манифеста.
Манифест
Манифест — это JSON-файл со всеми подробностями веб-приложения для браузера. Формат был разработан Google по инициативе PWA.
Чтобы добавить фавиконки с помощью манифеста, нужно подключить манифест, а в манифесте указать все иконки и их размеры, которые мы хотим подключить на сайт.
Файл. Создадим файл в корне проекта и назовём его manifest.webmanifest. Расширение .webmanifest нужно указать, чтобы браузер понимал, с каким файлом имеет дело. Само название файла может быть любым (в нашем случае — manifest).
Так как манифест — это JSON-файл, то он должен начинаться с открывающей скобки { и заканчиваться закрывающей скобкой}.
manifest.webmanifest { }
Внутри скобок нужно создать секцию иконок. Секция с иконками ожидает несколько иконок, поэтому добавим массив []:
manifest.webmanifest { "icons": [] }
Осталось добавить фавиконки по шаблону:
manifest. webmanifest { "icons": [ { "src": "", "type": "", "sizes": "" } ] }
Если иконок несколько, то их нужно добавить через запятую:
manifest.webmanifest { "icons": [ { "src": "", "type": "", "sizes": "" }, { "src": "", "type": "", "sizes": "" }, { "src": "", "type": "", "sizes": "" } ] }
Размеры. В манифесте мы укажем размер 192×192 и 512×512. 192 — так как это следующий размер после 180, а 512 — так как это очень большой размер для фавиконки, его будет достаточно. А что с промежуточными разрешениями? Всё хорошо: как и раньше, браузер сожмёт картинку к нужному размеру. Например, из 512 до 256.
manifest.webmanifest { "icons": [ { "src": "images/favicons/192.png", "type": "image/png", "sizes": "192x192" }, { "src": "images/favicons/512.png", "type": "image/png", "sizes": "512x512" } ] }
Настройки:
Можно добавить дополнительные размеры иконок, если этого требует браузерная поддержка вашего проекта. Например, вам потребовалась иконка 256×256. Давайте добавим её:
manifest.webmanifest { "icons": [ { "src": "images/favicons/192.png", "type": "image/png", "sizes": "192x192" }, { "src": "images/favicons/256.png", "type": "image/png", "sizes": "256x256" }, { "src": "images/favicons/512.png", "type": "image/png", "sizes": "512x512" } ] }
Откуда брать фавиконки и как их приготовить
Фавиконки — это ответственность верстальщика. Дизайнеры в большинстве случаев про фавиконки не знают, поэтому не предоставляют их с макетами.
Если дизайнер не предоставил фавиконки, у верстальщика есть два пути:
Не добавлять фавиконки в проект.
Попросить дизайнера отрисовать фавиконку (лучше в векторном формате). Рассказать, что требуется отрисовать иконку в квадрате. Сама иконка может быть круглой или даже овальной, но изображение должно быть вписано в квадрат с пропорциями 1:1.
Векторный формат позволит растянуть фавиконку до нужных размеров (192, 256 и даже 512) без потери качества. Таким образом верстальщик сможет сгенерировать себе нужные размеры и подключить их к странице.
При генерации фавиконок с помощью сторонних сервисов всегда смотрите на получившийся результат. Чаще всего иконки получаются замыленными. Даже если брать хороший оригинал 512×512, то при уменьшении до 32×32 всё равно могут появиться артефакты.
Для генерации фавиконок используйте сервис favicon-generator: экспортируйте изображение фавиконки в формате PNG, добавьте это изображение в сервис генерации фавиконок, нажмите кнопку «Create favicon», а потом — ссылку «Download the generated favicon». Вы скачаете архив со всеми возможными вариантами фавиконок. Возьмите favicon.ico и другие необходимые версии, подключите к странице проекта.
Итог
Итоговый способ подключения фавиконки:
<link rel="icon" href="favicon.ico"> <!-- 32×32 --> <link rel="icon" href="images/favicons/icon.svg" type="image/svg+xml"> <link rel="apple-touch-icon" href="images/favicons/apple.png"> <!-- 180×180 --> <link rel="manifest" href="manifest.webmanifest">
manifest.webmanifest
{ "icons": [ { "src": "images/favicons/192.png", "type": "image/png", "sizes": "192x192" }, { "src": "images/favicons/512.png", "type": "image/png", "sizes": "512x512" } ] }
Таким способом мы будем поддерживать самые старые браузеры и самые новые.
Ничего страшного, что список одной фавиконки получился столь длинным — 4 пункта. Во-первых, браузер загружает фавиконку асинхронно. Во-вторых, он сначала посмотрит на весь список фавиконок и загрузит только одну — самую подходящую.
Фавиконки — часть программы курса «HTML и CSS. Профессиональная вёрстка сайтов». Кроме этого в комплекте два месяца теории и практики, интересные проекты и личный наставник. А по промокоду SKUCHNO — скидка 1000 ₽.
Управление остатками
- Описание курса
- Каталог товаров
- Размещаем видео с Youtube в карточке товара
- Изменение количества выводимых товаров в строке
- Техническая поддержка
- Установка Аспро: Крутой шоп
- Подготовка хостинга
- Установка через bitrixsetup и создание базы данных
- Упрощенная установка на хостинге Reddock
- Активация лицензии, загрузка и установка обновлений 1С-Битрикс
- Подготовка хостинга
- Настройки интернет-магазина
- Платежные системы
- Изменение информации о платежной системе
- Пакет иконок платежных систем
- Тип цен
- Первые шаги
- Фавикон и логотип
- Счетчики Google/Яндекс
- Настройка прав пользователей
- Карточка товара
- Аксессуары, похожие товары, услуги
- Аксессуары
- Похожие товары
- Услуги
- Вкладки
- Описание
- Характеристики
- Видео
- Прикрепление нескольких роликов на вкладке «Видео»
- Отзывы
- Задать вопрос
- Дополнительно
- Персональные рекомендации
- Единицы измерения
- Редактирование единиц измерения
- Отключение обозначений единиц измерения
- Аксессуары, похожие товары, услуги
- Добавление товара
- Добавление товара вручную
- Создание торговых предложений
- Управление остатками
- Наборы и комплекты
- Наборы
- Создание и настройка наборов для товаров
- Создание и настройка наборов для торговых предложений
- Настройка отображения количества товаров в наборе
- Комплекты
- Создание и настройка комплектов для товаров
- Наборы
- Настройка товаров с каноническими ссылками
- Платежные системы
- Установка модулей сторонних разработчиков
- Электронная торговля Google и Яндекс. Электронная коммерция
- Интеграция с другими сервисами
- Расширенная интеграция с Яндекс. Метрикой
- Обзор настроек для Яндекс.Метрики
- Установка счетчиков
- Настройка целей в Яндекс.Метрике
- Создание общей цели для веб-форм
- Создание отдельной цели для веб-формы
- Настройка цели корзины и оформления заказа
- Настройка целей для интернет-магазинов
- Обзор настроек для Яндекс.Метрики
- Расширенная интеграция с Яндекс. Метрикой
- Согласие на обработку персональных данных
- Автоматическое согласие на обработку персональных данных
- SEO, маркетинг, реклама
- Триггерные рассылки
- Настройка ЧПУ
- Настройка ЧПУ для каталога
- Настройка ЧПУ для умного фильтра
- Почтовые шаблоны
- Рекламные баннеры
- Типы описаний в Аспро: Оптимус
- Метатеги
- Стикеры
- Акции и скидки
- Правила работы с корзиной
- Отображение процента скидки
- Предсказания в карточке товара
- Таймер обратного отсчета для акций
- Привязка товаров к акциям
- Накопительные скидки
- Таймер обратного отсчета для торговых предложений
- Подарки
- Настройка купонов и промокодов
- SEO-описания разделов каталога
- Настройка хлебных крошек
- Страница с ошибкой 404
- Типы описаний в Аспро: Маркет
На карточке товара есть возможность подключить отображение остатков. Это может быть иконка с приблизительным значением: «Много», «Мало», «Достаточно» или конкретное указание количества.
Аспро: Оптимус
Аспро: Маркет
Аспро: Шины и диски 2.0
Аспро: Next
Аспро: Крутой шоп
Подписи иконок кликабельны и при клике открывают и переводят на вкладку «Наличие на складе» (если она подключена на карточке).
Вы можете настроить отображение остатков в виде количества или обобщенных выражений и настроить диапазоны, в которых действует каждое выражение.
Переключитесь на административный раздел и перейдите в раздел Рабочий стол → Настройки → Настройки продукта → Настройки модулей → Аспро: (ИмяПродукта) — Адаптивный интернет-магазин.
Вам нужна группа полей «Отображение наличия товара».
- Отображать наличие товара для групп – вы можете выбрать одну или несколько групп пользователей, для которых на карточке товара отображается иконка остатков товара
- Отображать наличие товара количеством для групп – вы можете выбрать одну или несколько групп пользователей, для которых на карточке товара отображается точное количество остатков
- Если доступно… подменять числа на выражения – активная опция скрывает точное количество.