Desde os problemas causados pelo uso de Cufon eu me aventurei a deixar de usar recursos de fontes externas, mas ultimamente tenho procurado métodos alternativos de carregamento de fontes para ver se há uma maneira melhor; métodos melhores têm uma maneira de simplesmente aparecer do nada.
Existem muitos métodos novos por aí e variações para cada método que parece; Devo usar o typekit ? ou google webfonts (com js ou css)? devo continuar a usar fontes de carregamento local (por exemplo, método gerado por fontsquirrel.com)?
Vou listar os métodos que parecem mais bem recebidos abaixo, com alguns testes, mas realmente vale a pena mudar para um webfont? Parece que carregaria uma carga de recursos maior (solicitações de http) e teria menos tipos de formato de arquivo (menos compatibilidade) etc. Mas parece que os arquivos são carregados de forma assíncrona e eficiente na maioria dos casos.
- É apenas uma questão de situação e necessidade? Se sim, quais são eles?
- Existem diferenças drásticas entre esses métodos?
- Existe um método melhor que não listei?
- Quais são os prós / contras do desempenho? Veja? dependências? compatibilidades?
Estou realmente procurando as melhores práticas aqui, o desempenho é importante, mas também a escalabilidade e a facilidade de uso. Para não mencionar, olhar e sentir.
CSS do Google
- usa apenas folha de estilo externa
- usa apenas o menor tipo de arquivo compatível
- pode usar
@import
ou<link>
ou pegar o conteúdo de styleshee (@font-face
) e colocá-lo diretamente em sua própria folha de estilo.
Resultado dos testes
78ms load of html 36ms load of css
Método JS do Google
- usa
webfont.js
para carregar o estilete - usa apenas o menor tipo de arquivo compatível
- acrescenta
:root
elemento com classe - adiciona script à cabeça.
Resultado dos testes
171ms load of html 176ms load of js 32ms load of css
Método Typekit
- acrescenta
:root
elemento com classe. - pode usar
*.js
trecho ou arquivo carregado externamente*.js
arquivo - usa em
data:font/opentype
vez do arquivo de fonte. - adiciona script à cabeça
- adiciona css incorporado ao cabeçalho
adiciona folha de estilo externa ao cabeçalho
você pode facilmente adicionar / remover / ajustar fontes e seletores direcionados em typekit.com
Resultado dos testes
169ms load of html 213ms load of js 31ms load of css 3ms load of data:font/
… E o Método 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)
}
… Ou com dados: método da fonte…
@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
webfonts locais . Estou usando o método font-squirrel e gostaria de ver uma ótima resposta para essa pergunta também.
@font-face
declarações à prova de balas , talvez você possa encontrar informações úteis. paulirish.com/2009/bulletproof-font-face-implementation-syntax