A fonte é exibida de maneira diferente no Firefox e no Chrome

14

Parece que minha barra de menus é exibida com uma extensão de fonte diferente no Firefox e no Chrome. Veja o seguinte:

trecho de fonte diferente

Aqui está o CSS aplicado a este elemento:

font-variant: small-caps;
font-size:13px;
letter-spacing: 0px;
font-family: Arial;
font-stretch: normal;
text-decoration: none;

Tanto quanto eu posso dizer, tudo sobre essa fonte é exatamente o mesmo, mas eles ainda são exibidos de maneira diferente (veja a foto). Por quê?

Goro
fonte
1
Você fez uma redefinição de CSS primeiro?
kei 24/05
@kei: O reset não parece ter efeito #
Goro
Interessante. Estou obtendo o mesmo resultado que a sua imagem: jsfiddle.net/YGwcn Parece que tudo se resume a como cada navegador interpreta o estilo.
kei 24/05

Respostas:

14

O Chrome usa o mecanismo de renderização do WebKit. O Firefox usa o mecanismo Gecko. Ambos interpretam e exibem o tipo de maneira um pouco diferente, assim como os mecanismos gráficos DirectX e Vega usados ​​no IE9 + e no Opera.

Você não pode forçar os navegadores a renderizarem o mesmo texto, mas pode fazer algumas coisas para garantir que sua navegação ocupe a mesma largura nos navegadores:

  1. Use imagens ou SVGs em vez do tipo para os elementos da barra de navegação. Isso pode ser útil se for improvável que sua área de navegação mude com frequência. por exemplo, www.apple.com

  2. Corrija a largura de cada elemento de navegação com CSS. O tamanho do texto ainda parecerá diferente entre os navegadores, mas se você atribuir a cada <li>elemento em sua área de navegação uma largura fixa de pixels, a caixa delimitadora de cada link será muito semelhante nos navegadores e a largura total da área de navegação deverá ser a mesma.

usuario
fonte
5
Você deve tomar cuidado com itens como "Usar imagens em vez de digitar para os elementos da barra de navegação". As imagens ficarão horríveis em máquinas mais novas com monitores de alta resolução (por exemplo, monitores Apple "Retina", alguns outros smartphones), a menos que você forneça também uma cópia em resolução dupla.
Olly Hodgson
@OllyHodgson Claro. PNGs ou SVGs de tamanho duplo (que é o que a Apple usa para a navegação) seriam melhores para telas de alta resolução.
Nick
@ Nick - Sim, SVG seria a melhor solução.
M93a 17/10/2013
Não neste caso, não seria. O Firefox não suporta letter-spacingelementos SVG.
Yay295
@ Yay295 Você pode descrever fontes no SVG.
Nick
5

As diferenças na renderização da fonte entre diferentes navegadores (e em diferentes sistemas operacionais) são um fato real. Você só precisa garantir que, se a fonte for exibida em larguras diferentes, seu design ainda aguentará.

paulmorriss
fonte
2

Caso alguém se depare com isso, para mim o problema era letter-spacing. Chrome e Firefox manipulam a propriedade de maneira diferente.

Meu problema era letter-spacingestar afetando a posição de outros elementos; especificamente algumas imagens no menu de navegação. Ao remover a propriedade, meu problema foi resolvido instantaneamente.

Também li que o uso específico de .pointvalores pode ter efeitos alterados entre os 2 navegadores, o que era verdade no meu caso.

Mike
fonte
0

Descobri que o webkit suportará px para o tamanho da fonte, mas para coisas como espaçamento entre letras, eles ignoram tudo juntos se você não os usar.

Alan Hughes
fonte
0

Após testar 6 navegadores / 4 mecanismos de renderização em dois sistemas operacionais. Descobri que a maioria era a mesma, mesmo com espaçamento entre linhas. Examinarei a diferença com o Windows e o Linux em um minuto.

Eu pensei que a fonte Palatino estivesse disponível em todos os lugares, mas o chrome voltou aos tempos romanos, que são um pouco menores, as fontes padrão tiveram os mesmos resultados (cromados diferentes), o que me enganou um pouco.

De qualquer forma, se você especificar horários romanos ou usar @fontface para fornecer arquivos de fonte! você pode tornar suas barras de navegação mais lisas ;-)

Kevin Chadwick
fonte
0

Eu tive um problema semelhante e encontrei uma solução:

Usando:

font-family: 'Donegal One', serif;
font-variant: small-caps;
text-rendering: optimizeLegibility;

No Firefox, parece ótimo. No Chrome, o espaçamento entre letras era estranho. Remover o optimizelegibilityestilo fez o truque. Ambos os navegadores são processados ​​de forma idêntica agora.

Decidi remover o estilo do webkit e deixá-lo no lugar de outros navegadores. Parece bom agora.

Andy
fonte
0

Eu tive um problema semelhante com o Open-Sans, isso fez comigo:

-webkit-font-smoothing: subpixel-antialiased;
font-smoothing: subpixel-antialiased;
plinto
fonte