A parte il fatto che PNG è un formato di immagine più comune, c'è qualche motivo tecnico per favorire favicon.png rispetto a favicon.ico?
Sto supportando i browser moderni che supportano tutte le icone preferite di PNG.
A parte il fatto che PNG è un formato di immagine più comune, c'è qualche motivo tecnico per favorire favicon.png rispetto a favicon.ico?
Sto supportando i browser moderni che supportano tutte le icone preferite di PNG.
Risposte:
Risposta sostituita (e trasformata in Wiki comunità) a causa di numerosi aggiornamenti e note di vari altri in questo thread:
Sentiti libero di consultare le altre risposte qui per maggiori dettagli.
Tutti i browser moderni (testati con Chrome 4, Firefox 3.5, IE8, Opera 10 e Safari 4) richiederanno sempre un a favicon.ico
meno che non sia stata specificata un'icona di collegamento tramite <link>
. Quindi se non lo specifichi esplicitamente, è meglio avere sempre un favicon.ico
file, per evitare un 404. Yahoo! ti suggerisce di renderlo piccolo e memorizzabile nella cache.
E non devi nemmeno scegliere un PNG solo per la trasparenza alfa. I file ICO supportano bene la trasparenza alfa (cioè il colore a 32 bit), anche se quasi nessuno strumento ti consente di crearli. Uso regolarmente il generatore FavIcon di Dynamic Drive per creare favicon.ico
file con trasparenza alfa. È l'unico strumento online che conosco che può farlo.
C'è anche un plug-in gratuito per Photoshop che può crearli.
.ico
montaggio su PS. E anche se lo fai, il risultato finale è davvero pessimo, penseresti che .bmp
fosse un formato migliore (aggiunge un sacco di metadati rendendo il re-editing un enorme problema).
I file .png sono belli, ma i file .ico offrono anche trasparenza al canale alfa, oltre a garantire la retrocompatibilità.
Dai un'occhiata al tipo di StackOverflow utilizzato ad esempio (nota che è trasparente):
<link rel="shortcut icon" href="http://sstatic.net/so/favicon.ico">
<link rel="apple-touch-icon" href="http://sstatic.net/so/apple-touch-icon.png">
La cosa Apple-Itouch è per gli utenti di iPhone che effettuano un collegamento a un sito Web.
Il vantaggio teorico dei file * .ico è che sono contenitori che possono contenere più di un'icona. Ad esempio, è possibile memorizzare un'immagine con canale alfa e una versione a 16 colori per sistemi legacy, oppure è possibile aggiungere icone 32x32 e 48x48 (che verrebbero visualizzate quando si trascina un collegamento a Windows Explorer).
Questa buona idea, tuttavia, tende a scontrarsi con le implementazioni del browser.
PNG ha 2 vantaggi: ha dimensioni ridotte ed è più ampiamente utilizzato e supportato (tranne nel caso delle favicon). Come accennato prima di ICO, può avere icone di dimensioni multiple, che sono utili per le applicazioni desktop, ma non troppo per i siti Web. Ti consiglierei di mettere un favicon.ico nella radice della tua applicazione. Se hai accesso al capo delle pagine del tuo sito web usa il tag per puntare a un file png. Quindi il browser più vecchio mostrerà favicon.ico e quelli più recenti il png.
Per creare file Png e Icon raccomanderei The Gimp .
Alcuni strumenti social come Google+ utilizzano un metodo semplice per ottenere una favicon per i collegamenti esterni, recuperando http://tuo.dominioname.com/favicon.ico
Poiché non eseguono il prefetch del contenuto HTML, il <link>
tag non funzionerà. In questo caso, potresti voler utilizzare una regola mod_rewrite o semplicemente posizionare il file nella posizione predefinita.
Un ico può essere un png.
Più precisamente, è possibile memorizzare uno o più png all'interno di questo formato contenitore minimo, invece della solita bitmap + alpha che tutti associano fortemente a ico.
Il supporto è vecchio, appare in Windows Vista (2007) ed è ben supportato dai browser, sebbene non necessariamente dal software di modifica delle icone.
Qualsiasi png valido (intero compreso l'intestazione) può essere anteposto da un'intestazione ico a 6 byte e da una directory di immagini a 16 byte.
GIMP ha il supporto nativo. Esporta semplicemente come ico e spunta "Compressed (PNG)".
Evitare PNG in ogni caso se si desidera una compatibilità IE6 affidabile.
<link>
codice nella pagina per i browser moderni.
Per quello che vale, faccio questo:
<!-- Favicon - Generic -->
<link rel="icon" href="path/favicon-32_x_32.png" sizes="32x32">
<link rel="icon" href="path/favicon-57_x_57.png" sizes="57x57">
<link rel="icon" href="path/favicon-76_x_76.png" sizes="76x76">
<link rel="icon" href="path/favicon-96_x_96.png" sizes="96x96">
<link rel="icon" href="path/favicon-128_x_128.png" sizes="128x128">
<link rel="icon" href="path/favicon-192_x_192.png" sizes="192x192">
<link rel="icon" href="path/favicon-228_x_228.png" sizes="228x228">
<!-- Favicon - Android -->
<link rel="shortcut icon" href="path/favicon-196_x_196.png" sizes="196x196">
<!-- Favicon - iOS -->
<link rel="apple-touch-icon" href="path/favicon-120_x_120.png" sizes="120x120">
<link rel="apple-touch-icon" href="path/favicon-152_x_152.png" sizes="152x152">
<link rel="apple-touch-icon" href="path/favicon-180_x_180.png" sizes="180x180">
E tengo ancora il root favicon.ico.