La fuente se muestra de manera diferente en Firefox frente a Chrome

14

Parece que mi barra de menú se muestra con una extensión de fuente diferente en Firefox que en Chrome. Ver lo siguiente:

estiramiento de fuente diferente

Aquí está el CSS aplicado a este elemento:

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

Por lo que puedo decir, todo lo relacionado con esa fuente es exactamente el mismo, pero aún se muestran de manera diferente (ver foto). ¿Por qué?

Goro
fuente
1
¿Has hecho un reinicio de CSS primero?
kei
@kei: Restablecer no parece tener efecto
Goro
Interesante. Estoy obteniendo el mismo resultado que su imagen: jsfiddle.net/YGwcn Parece que todo se reduce a cómo cada navegador interpreta el estilo.
kei

Respuestas:

14

Chrome usa el motor de renderizado WebKit. Firefox usa el motor Gecko. Ambos interpretan y muestran el tipo de pantalla de forma ligeramente diferente, al igual que los motores gráficos DirectX y Vega utilizados en IE9 + y Opera.

No puede forzar a los navegadores a representar el texto de manera idéntica, pero puede hacer un par de cosas para asegurarse de que su navegación ocupe el mismo ancho en los navegadores:

  1. Use imágenes o SVG en lugar de tipo para los elementos de su barra de navegación. Esto puede resultar útil si es poco probable que su área de navegación cambie con frecuencia. por ejemplo, www.apple.com

  2. Fije el ancho de cada elemento de navegación con CSS. El tamaño del texto seguirá siendo diferente entre los navegadores, pero si le da a cada <li>elemento en su área de navegación un ancho de píxel fijo, el cuadro delimitador de cada enlace será muy similar en todos los navegadores y el ancho total del área de navegación debería ser el mismo.

Mella
fuente
55
Debe tener cuidado con cosas como "Usar imágenes en lugar de tipo para los elementos de la barra de navegación". Las imágenes se verán horribles en máquinas más nuevas con pantallas de alta resolución (por ejemplo, pantallas "Retina" de Apple, algunos otros teléfonos inteligentes) a menos que también proporcione una copia de doble resolución.
Olly Hodgson el
@OllyHodgson Claro. Los PNG o SVG de doble tamaño (que es lo que Apple usa para su navegación) serían los mejores para pantallas de alta resolución.
Nick
@ Nick: Sí, SVG sería la mejor solución.
m93a
No en este caso no lo haría. Firefox no es compatible letter-spacingcon elementos SVG.
Yay295
@ Yay295 Puede delinear fuentes en el SVG.
Nick
5

Las diferencias en la representación de fuentes entre diferentes navegadores (y en diferentes sistemas operativos) son una realidad. Solo tiene que asegurarse de que si la fuente se muestra en diferentes anchos, su diseño aún puede hacer frente.

Paulmorriss
fuente
2

En caso de que alguien se encuentre con esto, para mí el problema fue letter-spacing . Chrome y Firefox manejan la propiedad de manera diferente.

Mi problema fue el letter-spacing estaba afectando la posición de otros elementos; específicamente algunas imágenes en el menú de navegación. Al eliminar la propiedad, mi problema se resolvió instantáneamente.

También he leído que el uso específico de .pointvalores puede tener efectos de alteración entre los 2 navegadores, lo cual fue cierto en mi caso.

Miguel
fuente
0

Descubrí que webkit admitirá px para el tamaño de fuente, pero para cosas como el espaciado entre letras, lo ignorarán todo si no los usa.

Alan Hughes
fuente
0

Después de probar 6 navegadores / 4 motores de renderizado en dos SO. He descubierto que la mayoría eran iguales incluso con el espacio entre líneas. Examinaré la diferencia con Windows y Linux en un minuto.

Pensé que la fuente Palatino estaba disponible en todas partes, pero Chrome volvió a ser romana, que es un poco más pequeña, las fuentes predeterminadas tuvieron los mismos resultados (diferentes de Chrome), lo que me confundió un poco.

De todos modos, si especifica times roman o usa @fontface para suministrar archivos de fuentes. es posible que pueda hacer que sus barras de navegación sean más elegantes ;-)

Kevin Chadwick
fuente
0

Tuve un problema similar y encontré una solución:

Utilizando:

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

En Firefox, se ve muy bien. En Chrome, el espacio entre letras era extraño. Eliminar el optimizelegibilityestilo hizo el truco. Ambos navegadores se procesan de manera idéntica ahora.

Decidí eliminar el estilo para webkit y dejarlo en su lugar para otros navegadores. Se ve bien ahora.

Andy
fuente
0

Tuve un problema similar con Open-Sans, esto lo hizo por mí:

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