HTML 5 Favicon-поддержка?
Я читал страницу Favicon в Википедии. Они упоминают спецификацию HTML 5 для Favicon:
текущая спецификация HTML5 рекомендует указывать значки размера в нескольких размерах, используя атрибуты rel=" icon " sizes=" space-separated list of icon dimensions " в теге. [источник] несколько форматов значков, включая форматы контейнеров, такие как Microsoft .ico и Macintosh .icns файлы, а также масштабируемая векторная графика могут быть предоставлены в том числе тип содержимого значка в виде type="file content-type" в теге.
глядя на цитируемую статью (W3) они показывают этот пример:
<link rel=icon href=favicon.png sizes="16x16" type="image/png">
<link rel=icon href=windows.ico sizes="32x32 48x48" type="image/vnd.microsoft.icon">
<link rel=icon href=mac.icns sizes="128x128 512x512 8192x8192 32768x32768">
<link rel=icon href=iphone.png sizes="57x57" type="image/png">
<link rel=icon href=gnome.svg sizes="any" type="image/svg+xml">
мой вопрос: поддерживают ли какие-либо браузеры метод HTML 5?
примечание: Я знаю, что Apple использует их apple-touch-icon метод метатегов над методом HTML5.
статья Википедии утверждает:
однако веб-браузер Google Chrome выберет ближайший соответствующий размер из тех, которые предусмотрены в заголовках HTML для создания значков приложений 128×128 пикселей, когда пользователь выбирает ярлыки создать приложение... из меню "Сервис".
Как Internet Explorer (от v9 до v11) и Firefox справляются с этим? И является ли статья правильной в том, как Chrome обрабатывает HTML-значки? (Для Chrome нет источника, подтверждающего это.)
в поиске я не смог найти никакой (достоверной) информации о HTML 5 Favicon, кроме Википедии Статья.
2 ответов:
ответы, предоставленные (во время этого поста), являются только ответами на ссылки, поэтому я подумал, что суммирую ссылки в ответ и то, что я буду использовать.
при работе над созданием кросс-браузерных фавиконов (включая сенсорные значки) есть несколько вещей, которые следует учитывать.
первый (конечно) является Internet Explorer. IE не поддерживает png favicons до версии 11. Таким образом, наша первая строка является условным комментарием для favicons в IE 9 и ниже:
<!--[if IE]><link rel="shortcut icon" href="path/to/favicon.ico"><![endif]-->чтобы покрыть использование значка, создайте его в пикселях 32x32. Обратите внимание на
rel="shortcut icon"для IE, чтобы распознать значок, ему нужно словоshortcutкоторый не является стандартным. Также мы заворачиваем.icofavicon в условном комментарии IE, потому что Chrome и Safari будут использовать.icoфайл, если он присутствует, несмотря на другие доступные параметры, не то, что мы хотели бы.выше крышки, т. е. на т. е. 9. IE 11 принимает png favicons, однако IE 10 этого не делает. Также IE 10 не читает условные комментарии, таким образом, IE 10 не будет показывать фавикон. С IE 11 и Edge я не вижу IE 10 в широком использовании, поэтому я игнорирую этот браузер.
для остальных браузеров мы будем использовать стандартный способ привести фавикон:
<link rel="icon" href="path/to/favicon.png">этот значок должен быть размером 196x196 пикселей, чтобы охватить все устройства, которые могут использовать этот значок.
для покрытия сенсорных значков на мобильных устройствах, мы будем использовать фирменный способ от Apple, чтобы привести сенсорный значок:
<link rel="apple-touch-icon-precomposed" href="apple-touch-icon-precomposed.png">используя
rel="apple-touch-icon-precomposed"не будет применять отражающий блеск при закладках на iOS. Чтобы iOS применяла блеск, используйтеrel="apple-touch-icon". Этот значок должен быть размером до 180x180 пикселей, так как это текущий размер, рекомендованный Apple для последних iPhone и iPad. Я читал Blackberry также будет использоватьrel="apple-touch-icon-precomposed".как Примечание: Chrome для Android состояния:
apple-touch - * устарели и будут поддерживаться только на короткое время время. (Написано как бета для M31 хрома).
пользовательские плитки для IE 11+ на Windows 8.1+
IE 11+ в Windows 8.1 + предлагает способ создания закрепленных плиток для вашего сайта.
Microsoft рекомендует создать несколько плиток следующего размера:
маленький: 128 x 128
средний: 270 х 270
широкий: 558 x 270
большой: 558 x 558
это должны быть прозрачные изображения, как мы определим цвет фона далее.
после создания этих изображений вы должны создать xml-файл с именем
browserconfig.xmlследующий код:<?xml version="1.0" encoding="utf-8"?> <browserconfig> <msapplication> <tile> <square70x70logo src="images/smalltile.png"/> <square150x150logo src="images/mediumtile.png"/> <wide310x150logo src="images/widetile.png"/> <square310x310logo src="images/largetile.png"/> <TileColor>#009900</TileColor> </tile> </msapplication> </browserconfig>Сохраните этот xml-файл в корне вашего сайта. Когда сайт закреплен IE будет искать этот файл. Если вы хотите назвать xml-файл чем-то другим или иметь его в другом месте, добавьте этот мета-тег в
head:<meta name="msapplication-config" content="path-to-browserconfig/custom-name.xml" />для получения дополнительной информации о IE 11 + пользовательские плитки и с помощью XML-файла посетите веб-сайт Microsoft.
складывая все это вместе:
чтобы собрать все это вместе, приведенный выше код будет выглядеть так:
<!-- For IE 9 and below. ICO should be 32x32 pixels in size --> <!--[if IE]><link rel="shortcut icon" href="path/to/favicon.ico"><![endif]--> <!-- Touch Icons - iOS and Android 2.1+ 180x180 pixels in size. --> <link rel="apple-touch-icon-precomposed" href="apple-touch-icon-precomposed.png"> <!-- Firefox, Chrome, Safari, IE 11+ and Opera. 196x196 pixels in size. --> <link rel="icon" href="path/to/favicon.png">Windows Phone Live Tiles
если пользователь использует Windows Phone, он может закрепить веб-сайт на начальном экране своего телефона. К сожалению, когда они делают это, он отображает скриншот вашего телефона, а не фавикон (даже не конкретный код MS, указанный выше). Чтобы сделать "живую плитку" для пользователей Windows Phone для вашего сайта необходимо использовать следующий код:
вот подробные инструкции от Microsoft но вот краткий обзор:
Шаг 1
создайте квадратное изображение для вашего вебсайта, для того чтобы поддержать экраны hi-res создайте его на пикселях 768x768 внутри размер.
Шаг 2
добавить скрытое наложение этого изображения. Вот пример кода от Microsoft:
<div id="TileOverlay" onclick="ToggleTileOverlay()" style='background-color: Highlight; height: 100%; width: 100%; top: 0px; left: 0px; position: fixed; color: black; visibility: hidden'> <img src="customtile.png" width="320" height="320" /> <div style='margin-top: 40px'> Add text/graphic asking user to pin to start using the menu... </div> </div>Шаг 3
затем вы можете добавить следующую строку, чтобы добавить pin-код для запуска ссылки:
<a href="javascript:ToggleTileOverlay()">Pin this site to your start screen</a>Microsoft рекомендует обнаруживать windows phone и показывать эту ссылку только этим пользователям, поскольку она не будет работать для других пользователей.
шаг 4
затем вы добавляете некоторые JS для переключения видимости наложения
<script> function ToggleTileOverlay() { var newVisibility = (document.getElementById('TileOverlay').style.visibility == 'visible') ? 'hidden' : 'visible'; document.getElementById('TileOverlay').style.visibility = newVisibility; } </script>обратите внимание на размеры
я использую один размер, так как каждый браузер будет уменьшать изображение по мере необходимости. Я мог бы добавить больше HTML, чтобы указать несколько размеров, если это необходимо для тех, у кого более низкая пропускная способность, но я уже сильно сжимаю файлы PNG, используя TinyPNG и я считаю это лишнее для моих целей. Кроме того, согласно philippe_b ' s ответ Chrome и Firefox имеют ошибки, которые заставляют браузер загружать все размеры значков. Использование одного большого значка может быть лучше, чем несколько меньших из-за этого.
Более Дальнеишее Чтение
для тех, кто хотел бы получить более подробную информацию см. По ссылкам ниже:
- статья в Википедии о Favicons
- Значок Руководство
- понять фавикон Джонатан Нил т.
- rel= "ярлык" считается вредным Матиас Байненс
- все, что вы всегда хотели знать о касании иконки Матиас Байненс
нет, не все браузеры поддерживают тег :
- Safari: Да,он выбирает изображение, которое подходит лучше всего.
- Опера: Да он выбирает изображение, которое подходит лучше всего.
- IE11: не уверен. он, по-видимому, принимает большую картину он находит, что немного грубо, но хорошо.
- Chrome: нет, смотрите Ошибки 112941 и 324820. На самом деле, хром имеет тенденцию к загрузке все объявленные значки, а не только лучший/первый/последний.
- в Firefox: нет,ошибка 751712. Как и Chrome, Firefox имеет тенденцию загружать все объявлена значок.
обратите внимание, что некоторые платформы определяют конкретные размеры:
- Android Chrome ожидает значок 192x192, но он поддерживает значки, объявленные в
manifest.json, если он присутствует. Плюс,Chrome использует значок Apple Touch для закладки.- Coast by Opera ожидает значок 228x228.
- Google TV ожидает значок 96x96.
Comments