Sin dai problemi causati dall'uso di Cufon mi sono allontanato dall'usare risorse di font esterne, ma ultimamente ho cercato metodi alternativi per caricare i font per vedere se esiste un modo migliore; metodi migliori hanno un modo di apparire dal nulla.
Ci sono molti nuovi metodi là fuori e le variazioni per ogni metodo sembra; Dovrei usare typekit ? o google webfonts (con js o css)? devo continuare a utilizzare i caratteri a caricamento locale (ad esempio, il metodo generato da fontsquirrel.com)?
Di seguito elencherò i metodi che sembrano i più apprezzati, con alcuni test, ma vale davvero la pena passare a un webfont? Sembra che porterebbe un carico di risorse maggiore (richieste http) e avrebbe meno tipi di formato di file (meno compatibilità) ecc. Ma sembra che i file vengano caricati in modo asincrono ed efficiente nella maggior parte dei casi.
- È solo una questione di situazione e di bisogno? Se sì, quali sono?
- Ci sono differenze drastiche tra questi metodi?
- C'è un metodo migliore là fuori che non ho elencato?
- Quali sono i pro / contro per le prestazioni? Guarda? dipendenze? compatibilità?
Sto davvero cercando le migliori pratiche qui, le prestazioni sono una cosa importante, ma lo sono anche la scalabilità e la facilità d'uso. Per non parlare del look and feel.
Google CSS
- usa solo fogli di stile esterni
- utilizza solo il tipo di file compatibile più piccolo
- puoi usare
@import
o<link>
o prendere il contenuto di styleshee (@font-face
) e metterlo direttamente nel tuo foglio di stile.
risultati del test
78ms load of html 36ms load of css
Metodo Google JS
- usa
webfont.js
per caricare styleshet - utilizza solo il tipo di file compatibile più piccolo
- aggiunge
:root
elemento con classe - aggiunge lo script alla testata.
risultati del test
171ms load of html 176ms load of js 32ms load of css
Metodo Typekit
- aggiunge
:root
elemento con classe. - può utilizzare
*.js
snippet o file di*.js
file caricato esternamente - utilizza
data:font/opentype
invece del file di font. - aggiunge lo script alla testata
- aggiunge css incorporato a head
aggiunge un foglio di stile esterno alla testata
puoi facilmente aggiungere / rimuovere / regolare caratteri e selettori mirati da typekit.com
risultati del test
169ms load of html 213ms load of js 31ms load of css 3ms load of data:font/
... e il metodo Font Squirrel
@font-face{
font-weight:400;
font-style:normal;
font-family:open_sanslight;
src:url(../font/opensans-light-webfont.eot);
src:url(../font/opensans-light-webfont.eot?#iefix) format(embedded-opentype),
url(../font/opensans-light-webfont.woff) format(woff),
url(../font/opensans-light-webfont.ttf) format(truetype),
url(../font/opensans-light-webfont.svg#open_sanslight) format(svg)
}
... o con dati: metodo dei caratteri ...
@font-face {
font-family: 'open_sanslight';
src: url('opensans-light-webfont-f.eot');
}
@font-face {
font-family: 'open_sanslight';
src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAF4sABMAAAAArXQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcZLn0KkqwK44Jq866WBSpzpsNY2IyGAhoJFBbYjuxmyns5sNa4NwldcJ7eh3Uy5gQkURIlqWzONe3HcLsDX1x/+jifDXvbzgTBjopZElndil3hJkERJkmRJkVRJk3TJkEzJkmzOc4HLXOEOF7nEX/*thisisnotafullencodingjustanexample*/bZwUnK4yS3JlTx2Sr4USKEUSbHVX9fcGNBs4fqgw+GoNHU7lKr36Eqn0lCWt6pHFpWaUlc6lS6loSxRlirLlP/uuU01dVfT7L6gPxyqraluCpgj3WtqeC1V4VBDW2N4K1r1esw/IupKp9L1FwlqnuIAAAB42j3NvQ7BUBjG8R5tTz/0u2UjNTTESYQbMGmXLiISbeI6zBYjbuWtye7CeMJxtuf3LP8ne1+IXbWa7G3TMXZru4qLZkJRW1O2wzi3I+Li2Gik5yXpYkNGXj70YU98YQLGHxwwXxIWwO8SNmAdJBzAXku4gFNI9AF38QMjTwZ9vN6yJzq9OoEB6I8VQzDYK0ZguFKMwWiumIDxTDEFk6liBqaF4gDMFFvKxAfOxFUGAAABUxSL9gAA) format('woff'),
url('opensans-light-webfont-f.ttf') format('truetype'),
url('opensans-light-webfont-f.svg#open_sanslight') format('svg');
font-weight: normal;
font-style: normal;
}
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300' rel='stylesheet'>
Georgian
. Sto usando il metodo font-squirrel e vorrei vedere un'ottima risposta anche a questa domanda.
@font-face
, forse puoi trovare informazioni utili. paulirish.com/2009/bulletproof-font-face-implementation-syntax