2014-05-24 45 views
147

Stavo leggendo la pagina di Favicon su Wikipedia. Citano le specifiche HTML 5 per Favicon:HTML 5 Favicon - Supporto?

La specifica HTML5 corrente consiglia di specificare le icone delle dimensioni in più dimensioni utilizzando gli attributi rel = "icona" sizes = "elenco separato dallo spazio di dimensioni dell'icona" all'interno di un tag. [source] È possibile fornire più formati di icone, inclusi formati contenitore come Microsoft .ico e Macintosh .icns, nonché grafica vettoriale scalabile includendo il tipo di contenuto dell'icona sotto forma di tipo = "tipo di contenuto del file" 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 è fare qualsiasi browser supportano il metodo HTML 5?

Nota: so che Apple utilizza il metodo meta tag apple-touch-icon tramite il metodo HTML5.

Le rivendicazioni Articolo Wikipedia:

il browser web Google Chrome tuttavia, selezionare il formato più simile da quelle previste nelle intestazioni HTML per creare 128 × 128 applicazioni pixel icone quando l'utente sceglie l'applicazione Crea scorciatoie ... 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 Favicons HTML? (Non vi è alcuna fonte citata per Chrome a conferma di ciò.)

Nella ricerca non sono riuscito a trovare alcuna informazione (credibile) su HTML 5 Favicon diversa dall'articolo di Wikipedia.

+0

Qualcosa sembra strano nel codice precedente: html5 non consente di quotare i valori degli attributi? Risposta: https://stackoverflow.com/questions/6495310/do-you-quote-html5-attributes – Jakub

risposta

285

Le risposte fornite (al momento di questo post) sono solo risposte di collegamento, quindi ho pensato di riassumere i collegamenti in una risposta e ciò che userò.

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

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

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

Per coprire gli usi della icona di crearla a 32x32 pixel. Notare rel="shortcut icon" per IE per riconoscere l'icona di cui ha bisogno la parola shortcut che non è standard. Inoltre, includiamo la preferenza .ico in un commento condizionale IE perché Chrome e Safari utilizzeranno il file .ico se è presente, nonostante le altre opzioni disponibili, non ciò che vorremmo.

Le coperture di cui sopra IE fino a IE 9. IE 11 accetta favicon PNG, tuttavia, IE 10 non lo fa. Anche 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 che stiamo per usare il modo standard per citare una favicon:

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

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

Per coprire le icone a sfioramento su dispositivi mobili ci accingiamo a utilizzare modo proprietario di Apple per citare l'icona di un tocco:

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

Utilizzando rel="apple-touch-icon-precomposed" non si applicherà la lucentezza riflettente quando segnalibro su iOS. Per fare in modo che iOS applichi la lucentezza usa rel="apple-touch-icon". Questa icona deve avere dimensioni pari a 180x180 pixel in quanto è la dimensione corrente consigliata da Apple per gli ultimi iPhone e iPad. Ho letto che Blackberry userà anche rel="apple-touch-icon-precomposed".

Come nota: Chrome per Android afferma:

La mela-touch * sono deprecati, e sarà supportato solo per un breve periodo di tempo. (Scritto come beta per m31 di Chrome).

piastrelle personalizzate per IE su Windows 11+ 8.1+

IE su Windows 11+ 8.1+ non offre un modo per creare piastrelle appuntato per il sito.

Microsoft consiglia la creazione di alcune mattonelle al seguente formato:

piccola: 128 x 128

Medium: 270 x 270

Wide: 558 x 270

Grande: 558 x 558

Queste devono essere tr immagini ansparenti come definiremo uno sfondo colorato dopo.

Una volta che queste immagini sono create si dovrebbe creare un file XML denominato browserconfig.xml con 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 il file xml nella root del vostro sito. Quando un sito è bloccato, IE cercherà questo file. Se si vuole dare un nome al file xml qualcosa di diverso o avere in una posizione diversa aggiungere questo meta tag al head:

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

Per ulteriori informazioni su IE 11+ piastrelle personalizzate e utilizzando il file XML visit Microsoft's website.

Mettere tutto insieme:

a mettere tutto insieme il codice di cui sopra sarebbe simile a questa:

<!-- 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 Tiles Live

Se un utente sta usando un Windows Phone possono attaccare 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 MS di cui sopra). Per fare un "Live Tile" per gli utenti Windows Phone per il tuo sito si deve usare il seguente codice:

Here are detailed instructions from Microsoft ma qui è una sinossi:

Fase 1

Creare un'immagine quadrata per la vostra sito web, per supportare schermate ad alta risoluzione, crea una dimensione di 768x768 pixel.

Fase 2

aggiungere una sovrapposizione di nascosto di questa immagine. Ecco esempio di codice da 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> 

Fase 3

È quindi possibile aggiungere Thew seguente riga per aggiungere un perno per avviare link:

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

si consiglia pertanto di rilevare le finestre telefono e mostra solo quel collegamento a quegli utenti poiché non funzionerà per altri utenti.

Fase 4

successivo si aggiunge un po 'di JS per attivare o disattivare la visibilità di sovrapposizione

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

Nota sulla Taglie

Sto usando una taglia come ogni browser ridurre la portata del 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 non lo ritengo necessario per i miei scopi. Inoltre, in base allo philippe_b di answer, Chrome e Firefox presentano bug che fanno sì che il browser carichi icone di tutte le dimensioni. A causa di ciò, l'utilizzo di un'icona grande potrebbe essere migliore rispetto a più piccoli.

Ulteriori letture

Per chi volesse maggiori dettagli si veda il link qui sotto:

+1

Quale icona di dimensione (per la mia applicazione web di segnalibri) ho bisogno di Apple? *** 320x460, 640x920, 640x1096, 72x72, 114x114, 144x144, 768x1004, 1024x748 ***? E per Android? – Kiquenet

+0

@Kiquenet Per il Web uso 180x180 per Apple e 196x196 per Android (e anche altri dispositivi, tranne IE 10 e seguenti). – L84

+0

[Ecco le istruzioni dettagliate di Apple] (https://developer.apple.com/library /content/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html) –

13

No, non tutti i browser supportano l'attributo sizes:

Si noti che alcune piattaforme definiscono dimensioni specifiche:

+1

'... tuttavia preferisce l'icona di Apple Touch se lo trova. Non è sicuro che sia più vero, almeno non in futuro. Dal sito Web di Chrome: 'Apple-touch-* è obsoleto e verrà supportato solo per un breve periodo. (Scritto come beta per m31 di Chrome) .' – L84

+2

Sì, ma al momento Android Chrome 35 seleziona l'icona touch di 152x152 Apple e ignora l'icona PNG 196x196 (ho utilizzato un test di compatibilità: http://realfavicongenerator.net/favicon_compatibility_test) .Non so quando Google cambierà, ma suppongo che non accadrà presto. Bene, è solo una supposizione. –

+0

In base a _https: //developer.apple.com/library/safari/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27_ le dimensioni per Apple (** Icona di Web clip * *) sono 76x76, 120x120, 152x152, 167x167, 180x180 *** – Kiquenet