HTML 5 Favicon - Supporto?


170

Stavo leggendo la pagina Favicon su Wikipedia. Citano le specifiche HTML 5 per Favicon:

L'attuale specifica HTML5 raccomanda di specificare le icone delle dimensioni in più dimensioni utilizzando gli attributi rel = "icon" dimensioni = "elenco separato da spazi di dimensioni icona" all'interno di un tag. [ fonte ] È possibile fornire più formati di icone, inclusi formati contenitore come file Microsoft .ico e Macintosh .icns, nonché grafica vettoriale scalabile includendo il tipo di contenuto dell'icona nella forma di type = "file content-type" all'interno del etichetta.

Guardando l'articolo citato (W3) mostrano questo esempio:

<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">

La mia domanda è: alcuni browser supportano il metodo HTML 5?

Nota: so che Apple utilizza il apple-touch-iconmetodo meta tag rispetto al metodo HTML5.

L'articolo di Wikipedia afferma:

Il browser Web Google Chrome, tuttavia, selezionerà la dimensione di corrispondenza più vicina tra quelle fornite nelle intestazioni HTML per creare icone dell'applicazione 128 × 128 pixel quando l'utente sceglie il collegamento Crea applicazioni ... dal menu "Strumenti".

In che modo Internet Explorer (da v9 a v11) e Firefox gestiscono questo? E l'articolo è corretto su come Chrome gestisce le Favicon HTML? (Non esiste una fonte citata per Chrome che lo conferma.)

Nella ricerca non sono riuscito a trovare informazioni (credibili) su HTML 5 Favicon diverse dall'articolo di Wikipedia.


1
Qualcosa sembra strano nel codice sopra - html5 consente di non citare i valori degli attributi? Risposta - stackoverflow.com/questions/6495310/...
jakubiszon

Risposte:


330

Le risposte fornite (al momento di questo post) sono solo risposte ai link, quindi ho pensato di riassumere i link in una risposta e cosa userò.

Quando si lavora per creare favicon Cross Browser (comprese le icone a sfioramento) ci sono diverse cose da considerare.

Il primo (ovviamente) è Internet Explorer. IE non supporta i favicon PNG fino alla versione 11. Quindi la nostra prima riga è un commento condizionale per favicon in IE 9 e precedenti:

<!--[if IE]><link rel="shortcut icon" href="path/to/favicon.ico"><![endif]-->

Per coprire gli usi dell'icona crearla a 32x32 pixel. Si noti che rel="shortcut icon"per IE per riconoscere l'icona ha bisogno della parola shortcutche non è standard. Inoltre avvolgiamo la .icofavicon in un commento condizionale di IE perché Chrome e Safari utilizzeranno il .icofile se è presente, nonostante le altre opzioni disponibili, non quello che vorremmo.

Quanto sopra copre IE fino a IE 9. IE 11 accetta favicon PNG, tuttavia IE 10 no. Inoltre IE 10 non legge i commenti condizionali, quindi IE 10 non mostrerà una favicon. Con IE 11 e Edge disponibili non vedo IE 10 in uso diffuso, quindi ignoro questo browser.

Per il resto dei browser useremo il modo standard per citare una favicon:

<link rel="icon" href="path/to/favicon.png">

Questa icona deve avere dimensioni di 196x196 pixel per coprire tutti i dispositivi che possono utilizzare questa icona.

Per coprire le icone touch sui dispositivi mobili utilizzeremo il modo proprietario di Apple per citare un'icona touch:

<link rel="apple-touch-icon-precomposed" href="apple-touch-icon-precomposed.png">

L'uso rel="apple-touch-icon-precomposed"non applica la lucentezza riflettente quando viene aggiunto un segnalibro su iOS. Per fare in modo che iOS applichi l'uso di Shinerel="apple-touch-icon" . Questa icona deve essere dimensionata a 180x180 pixel poiché è la dimensione corrente consigliata da Apple per gli ultimi iPhone e iPad. Ho letto che verrà utilizzato anche Blackberry rel="apple-touch-icon-precomposed".

Come nota: Chrome per Android afferma:

I apple-touch- * sono obsoleti e saranno supportati solo per un breve periodo. (Scritto dalla beta per m31 di Chrome).

Piastrelle personalizzate per IE 11+ su Windows 8.1+

IE 11+ su Windows 8.1+ offre un modo per creare riquadri bloccati per il tuo sito.

Microsoft consiglia di creare alcuni riquadri con le seguenti dimensioni:

Piccolo: 128 x 128

Medio: 270 x 270

Largo: 558 x 270

Grande: 558 x 558

Queste dovrebbero essere immagini trasparenti in quanto definiremo successivamente uno sfondo colorato.

Una volta create queste immagini, è necessario creare un file xml chiamato browserconfig.xmlcon il seguente codice:

<?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>

Salva questo file xml nella radice del tuo sito. Quando un sito viene bloccato, IE cercherà questo file. Se vuoi nominare il file xml con qualcosa di diverso o averlo in una posizione diversa aggiungi questo meta tag al head:

<meta name="msapplication-config" content="path-to-browserconfig/custom-name.xml" />

Per ulteriori informazioni sui riquadri personalizzati di IE 11+ e sull'utilizzo del file XML, visitare il sito Web di Microsoft .

Mettere tutto insieme:

Per mettere tutto insieme il codice sopra sarebbe simile a questo:

<!-- 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">

Piastrelle live di Windows Phone

Se un utente utilizza un Windows Phone, può aggiungere un sito Web alla schermata iniziale del proprio telefono. Sfortunatamente, quando lo fanno mostra uno screenshot del tuo telefono, non una favicon (nemmeno il codice specifico per MS menzionato sopra). Per creare un "riquadro animato" per gli utenti di Windows Phone per il tuo sito Web, devi utilizzare il seguente codice:

Ecco le istruzioni dettagliate di Microsoft, ma ecco una sinossi:

Passo 1

Crea un'immagine quadrata per il tuo sito Web, per supportare schermate ad alta risoluzione, creala con dimensioni di 768x768 pixel.

Passo 2

Aggiungi un overlay nascosto di questa immagine. Ecco un esempio di codice di 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>

Passaggio 3

È quindi possibile aggiungere la seguente riga per aggiungere un pin per avviare il collegamento:

<a href="javascript:ToggleTileOverlay()">Pin this site to your start screen</a>

Microsoft consiglia di rilevare Windows Phone e di mostrare solo quel collegamento a tali utenti poiché non funzionerà per altri utenti.

Passaggio 4

Successivamente aggiungi alcuni JS per attivare la visibilità della sovrapposizione

<script>
function ToggleTileOverlay() {
 var newVisibility =     (document.getElementById('TileOverlay').style.visibility == 'visible') ? 'hidden' : 'visible';
 document.getElementById('TileOverlay').style.visibility =    newVisibility;
}
</script>

Nota sulle taglie

Sto usando una dimensione in quanto ogni browser ridimensionerà l'immagine se necessario. Potrei aggiungere più HTML per specificare più dimensioni se lo si desidera per quelli con una larghezza di banda inferiore, ma sto già comprimendo pesantemente i file PNG usando TinyPNG e lo trovo non necessario per i miei scopi. Inoltre, secondo la risposta di philippe_b , Chrome e Firefox hanno dei bug che causano il caricamento di icone di tutte le dimensioni nel browser. L'uso di un'icona grande può essere migliore di più di quelle più piccole per questo motivo.

Ulteriori letture

Per coloro che desiderano maggiori dettagli, consultare i collegamenti seguenti:


1
Quale icona delle dimensioni (per la mia applicazione Web dei segnalibri) è necessaria per Apple? 320x460, 640x920, 640x1096, 72x72, 114x114, 144x144, 768x1004, 1024x748 ? E per Android?
Kiquenet,

@Kiquenet Per il web utilizzo 180x180 per Apple e 196x196 per Android (e anche altri dispositivi, tranne IE 10 e precedenti).
L84,


Di tutto il modo in cui aggiungo un'icona preferita a domande e risposte, questa deve essere la mia preferita perché è estremamente istruttiva e soprattutto - FUNZIONA! Grazie uomo! L'uso del formato .PNG mi ha davvero salvato!
twknab,

16

No, non tutti i browser supportano l' sizesattributo:

Si noti che alcune piattaforme definiscono dimensioni specifiche:


1
...yet it favors the Apple Touch icon if it finds it.Non sono sicuro che questo sia completamente vero, almeno non in futuro. Dal sito Web di Chrome:The apple-touch-* are deprecated, and will be supported only for a short time. (Written as of beta for m31 of Chrome).
L84,

2
Sì, ma in questo momento Android Chrome 35 seleziona l'icona Apple touch 152x152 e ignora l'icona PNG 196x196 (ho usato un test di compatibilità: realfavicongenerator.net/favicon_compatibility_test ). Non so quando Google cambierà, ma la mia ipotesi è che non accadrà presto. Bene, questa è solo una supposizione.
philippe_b,

Secondo developer.apple.com/library/safari/documentation/UserExperience/… le dimensioni per Apple ( icona clip Web ) sono 76x76, 120x120, 152x152, 167x167, 180x180
Kiquenet

Secondo developer.chrome.com/multidevice/android/installtohomescreen le dimensioni per Android sono 36x36, 48x48, 72x72, 96x96, 144x144, 192x192 , forse troppo 128x128
Kiquenet
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.