He estado experimentando con la etiqueta canvas y Javascript. He creado una página que toma Tweets de la línea de tiempo pública de Twitter y los anima a la vista. Funciona mediante el uso de un elemento canvas en el fondo de la animación. Cuando se completa la animación, crea un elemento div con el mismo texto en la parte superior. Hago esto para que el texto del tweet sea seleccionable y se pueda hacer clic en los enlaces.Hacer que Firefox renderice el texto del lienzo de la misma manera que el texto CSS
Ahora, en Safari, Chrome e incluso Opera, el texto del lienzo y el texto div se ven casi exactamente iguales. Sin embargo, en Firefox, el tamaño del texto es lo suficientemente diferente como para hacerlo 'saltar' en el momento en que cambia a div.
¿Alguien sabe cómo hacer que Firefox represente el texto de la misma manera en el elemento del lienzo y div usando CSS? O esto es una incoherencia de renderizado con el motor.
He puesto la página on my website si quiere ver lo que quiero decir.
Ahora para el código:
El CSS que estoy usando para hacer que la div contiene:
line-height: 21px; font-weight: 100; font-family: Georgia, "New Century Schoolbook", "Nimbus Roman No9 L", serif; font-size: 20px;
para la representación en el lienzo que estoy usando:
this.context.font = this.scale + 'px Georgia';
this.context.fillStyle = "white";
this.context.strokeStyle = 'white';
this.context.fillText(this.text, 0, 0);
this.context.strokeText(this.text, 0, 0);
donde this.scale es un factor de escala animado que termina exactamente a 20px. Entonces, para recapitular, estoy usando la misma fuente y terminando en el mismo tamaño de px, pero Firefox representa el texto de manera diferente entre Canvas y CSS.
(editar) Aquí hay una captura de ejemplo: alt text http://danforys.com/temp/firefox-behaviour.png
primera línea es la animación de texto en el uso de lienzo, segunda línea es el div resultante.
Hmm, mirando de cerca a la pantalla, tal vez es los espacios. La letra tiene un tamaño similar, pero los espacios se ven un poco más amplios en el div CSS. –