CSS @ font-face - o que significa “src: local ('☺')”?

133

Estou usando @font-facepela primeira vez e baixei um kit de fontes do fontsquirrel

O código que eles recomendam inserir no meu CSS é:

@font-face {
    font-family: 'junctionregularRegular';
    src: url('Junction-webfont.eot');
    src: local('☺'), 
        url('Junction-webfont.woff') format('woff'), 
        url('Junction-webfont.ttf') format('truetype'), 
        url('Junction-webfont.svg#webfontoNEpZXy2') format('svg');
}

Agora, a coisa do rosto sorridente me deixou perplexo. Mas também o número de URLs no src - por que eles recomendam tantos arquivos e todos eles serão enviados ao navegador quando uma página for renderizada? Existe algum dano na remoção de todos, exceto o .ttf?

stephenmurdoch
fonte

Respostas:

94

se você ler as notas no gerador de fontes-esquilo da fonte, verá que foi uma pegadinha de paul irish.

Aqui está o trecho de sua postagem no blog :


E .. em relação à @font-facesintaxe

Agora, recomendo a variação de smiley à prova de balas sobre a sintaxe original à prova de balas.

@font-face {
  font-family: 'Graublau Web';
  src: url('GraublauWeb.eot');
  src: local('☺'),
       url('GraublauWeb.woff') format('woff'), url('GraublauWeb.ttf') format('truetype');
}

No post à prova de balas:

Sim, é um rosto sorridente. A especificação OpenType indica que caracteres unicode de dois bytes não funcionarão em um nome de fonte no Mac, o que diminui a probabilidade de alguém realmente ter lançado uma fonte com esse nome.

Existem algumas razões pelas quais o smiley é uma solução melhor:

  • O software Webkit + Font Management pode atrapalhar as referências locais, como transformar glifos em blocos A.

  • No OS X, o software Gerenciamento de fontes pode alterar as configurações do sistema para exibir uma caixa de diálogo ao tentar acessar uma fonte local () acessível fora da Biblioteca / Fontes. Mais detalhes no meu post à prova de balas. O Font Explorer X também é conhecido por atrapalhar outras coisas no Firefox.

  • Embora seja improvável, você pode fazer referência a uma fonte local () que é completamente diferente do que você pensa que é. (Postagem tipófila em fontes diferentes, mesmo nome) No mínimo, é um risco, e você está cedendo o controle do tipo ao navegador e à máquina host. Esse risco pode não valer o benefício de evitar o download da fonte.

Essas são questões bastante delicadas, mas vale a pena considerar.

corroído
fonte
12
thanks a lot ☺ está claro agora - Eu só encontrei este artigo sobre nicewebtype.com que responde a todas as minhas outras perguntas também
stephenmurdoch
9
portanto, em essência, a parte local desse código diz "essa fonte é conhecida localmente como X" e estamos usando o smiley para impedir que o navegador use possivelmente a fonte errada com o mesmo nome (pelos motivos mencionados acima). bom :)
abelito
3
Você realmente precisa de uma local()declaração? É redundante? O navegador não deve usar o seu primeiro url()sem ele?
Simon East
Quando visualizo minha fonte de css nas ferramentas de desenvolvimento do chrome, o rosto sorridente aparece assim: “Está correto?
Anthony
1
@ Simon: A declaração local existe para dar suporte ao IE6 - 8 (consulte a publicação no blog), portanto, a menos que você não se importe com esses navegadores, é necessário.
Stijn de Witt
34

O local (☺︎) é um hack css para desviar o IE6-8 do download de fontes que não podem ser usadas (ele só pode usar fontes no formato EOT).

Explicado: A última propriedade src tem precedência na cascata do CSS, o que significa que o CSS será analisado de baixo para cima. O local (☺︎) fará com que o IE pule o src na parte inferior, sem desperdiçar o download de fontes que não pode usar largura de banda, e vá direto para a fonte no .eotformato (definido na linha acima na sua pergunta) que será usado. O smiley é apenas para garantir que não haja uma fonte local com esse nome (combinação de caracteres).

Leia mais aqui: http://nicewebtype.com/notes/2009/10/30/how-to-use-css-font-face/

Magne
fonte
-3

@ font-face A última propriedade src tem precedência na cascata CSS, o que significa que o CSS será analisado de baixo para cima.

logu
fonte