64 votes

La même police, sauf que son poids semble différent sur les différents navigateurs.

Le texte s'affiche correctement dans Chrome. Je veux qu'il s'affiche de cette façon dans tous les navigateurs. Comment faire ?

J'ai pu résoudre ce problème dans Safari avec -webkit-font-smoothing: antialiased;

Chrome :
Chrome

Firefox :
Firefox

h1 {
    font-family: Georgia;
    font-weight: normal;
    font-size: 16pt;
    color: #444444;
    -webkit-font-smoothing: antialiased;
}

<h1>Hi, my name</h1>

Et un JSFiddle : http://jsfiddle.net/jnxQ8/1/

0 votes

D'une manière générale, les différents navigateurs gèrent tous leur propre rendu de texte. Si vous cherchez sur Google, vous verrez beaucoup de résultats sur le rendu des navigateurs. À moins que votre CSS ne soit bizarre, il est probable que vous soyez à la merci des différents moteurs de rendu de chaque navigateur associé.

1 votes

Ce sont des captures d'écran. Je l'ai résolu dans Safari avec -webkit-font-smoothing: antialiased; Maintenant pour firefox ?

0 votes

Ce n'est pas du css3 ? le lissage des polices ?

52voto

vincicat Points 1051

Veillez à ce que la police soit la même pour tous les navigateurs. S'il s'agit de la même police, alors le problème a été résolu. aucune solution en utilisant CSS multi-navigateur .

Comme chaque navigateur possède son propre moteur de rendu des polices, elles sont toutes différentes. Ils peuvent également différer dans les versions ultérieures, ou sur différents systèmes d'exploitation.

UPDATE : Pour ceux qui ne comprennent pas les différences de rendu des polices entre les navigateurs et les systèmes d'exploitation, lisez ceci y ce .

Toutefois, la différence n'est même pas perceptible par la plupart des gens, et les utilisateurs l'acceptent. Oubliez la conception cross-browser au pixel près, à moins que vous ne soyez.. :

  1. Essayer de désactiver le rendu sous-pixel par CSS (tous les navigateurs ne le permettent pas et le texte peut être laid...)
  2. Utilisation d'images (les ressources sont exigeantes et difficiles à maintenir)
  3. Remplacer Flash (nécessite un peu de programmation et ne fonctionne pas sur iOS)

UPDATE : J'ai vérifié la page d'exemple. Le réglage du crénage par le rendu du texte devrait aider :

text-rendering: optimizeLegibility; 

Plus de références ici :

  1. Une partie du rendu de la police est contrôlée par font-smoothing (comme mentionné) et une autre partie est text-rendering . Il peut être utile de régler ces propriétés, car leurs valeurs par défaut ne sont pas les mêmes d'un navigateur à l'autre.
  2. Pour Chrome, si l'affichage n'est toujours pas correct, essayez ceci hack text-shadow . Il devrait améliorer le rendu des polices de Chrome, en particulier sous Windows. Cependant, le text-shadow deviendra fou sous Windows XP. Soyez prudent.

9 votes

Je ne comprends pas pourquoi Chrome et Safari ont un rendu différent : ils sont tous deux basés sur WebKit.

1 votes

Oui, mais apparemment, Chrome applique automatiquement "webkit-font-smoothing : antialiased ;" et Safari ne le fait pas ?

1 votes

Chrome et safari sont similaires mais pas le même navigateur : ils partagent la même base, webkit, mais de nombreux composants spécifiques à la plateforme et les modules css sont différents - safari supporte plus de propriétés css3 que chrome. Et le rendu des polices est très spécifique à la plateforme.

19voto

oneiota Points 103

Afin de normaliser au mieux les polices intégrées à votre @font-face dans les différents navigateurs, essayez d'inclure les éléments ci-dessous dans votre déclaration @font-face ou dans le style de police de votre corps :

speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;

À l'heure actuelle, il semble qu'il n'y ait pas de solution universelle pour toutes les plateformes et toutes les versions de navigateur. Comme indiqué fréquemment, tous les navigateurs/OS ont des moteurs de rendu de texte différents.

15voto

bobzIlla Points 11

Vous trouverez d'excellentes informations à ce sujet ici : https://bugzilla.mozilla.org/show_bug.cgi?id=857142

Nous sommes toujours en train d'expérimenter, mais jusqu'à présent, une solution peu invasive, destinée uniquement aux FF, a été trouvée :

body {
-moz-osx-font-smoothing: grayscale;
}

0voto

Trevor Points 5062

Je ne pense pas que l'utilisation de "points" pour la taille de la police sur un écran soit une bonne idée. Essayez d'utiliser px ou em pour la taille de la police.

De W3C :

Ne spécifiez pas la taille de la police en pt, ou d'autres unités de longueur absolue. Elles rendent de manière incohérente sur les plateformes et ne peuvent pas être redimensionnées par l'agent utilisateur (par exemple, le navigateur).

0 votes

Mais cela n'a rien à voir avec l'audace de la police ?

1 votes

L'audace est contrôlée par le lissage de la police (et la technique du sous-pixel par le système d'exploitation et le moteur de rendu du navigateur).

0 votes

ON chrome est le même son démarrage sur Chrome 20 , chrome 17 dont OK

-2voto

Jorge Points 1

Essayez text-rendering: geometricPrecision; .

Différent de text-rendering: optimizeLegibility; Le dernier permet d'activer le crénage et les ligatures.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X