Comment afficher des caractères spéciaux unicode en utilisant la police en HTML avec espacement fixe la largeur des caractères conservés

StackOverflow https://stackoverflow.com/questions/9351689

Question

J'utilise élément pre pour afficher un texte comprenant des caractères spéciaux (unicode ? ? ? ? ?). J'ai remarqué que les navigateurs rendent ces caractères spéciaux plus larges que les réguliers, occupant plus d'espace horizontal.

Ceci peut être facilement vu ici: https://gist.github.com/968b5c22cce14909cf27 Les deux lignes de 20 caractères ont de remarquer que première est plus longue (pixels de l'écran).

Y at-il un moyen (CSS) pour forcer les éléments pré (ou un autre élément avec la police appliquée) à espacement fixe avoir une largeur de caractère vraiment fixe?

J'ai vérifié sur Chrome et Firefox, et ils ont tous deux augmente la largeur des caractères spéciaux.

Était-ce utile?

La solution

La raison en est que certains des personnages sont absents de la première police figurant dans la déclaration de font-family étant appliquée. Ils seront ainsi affichés une autre police (s) dans le système, ou un indicateur de caractère irreprésentable est affiché.

Par exemple, le premier caractère est présent dans une poignée de polices seulement, voir http://www.fileformat.info/info/unicode/char/26a1 /fontsupport.htm (Qui ne couvre pas toutes les polices, mais la plupart des polices que les gens ont sans doute sur leurs ordinateurs).

Même si les autres polices utilisées sont la police à espacement fixe, ils peuvent avoir différentes largeurs d'avance pour les caractères. Par exemple, Everson Mono a une largeur légèrement plus petit que DejaVu Sans Mono . Être de Monospace juste que au sein de la police , tous les caractères ont la même largeur d'avance.

Vous devez utiliser une seule police qui contient tous les caractères dont vous avez besoin. Pour cette collection de caractères, les deux polices mentionnées ci-dessus sont probablement les seules polices Monospace distribuées publiquement qui les contiennent tous. Eh bien, il est unifont , mais il est une police bitmap avec un design très grossier; cela peut paraître tolérable taille 12pt ou un peu plus grand.

Autres conseils

Il est pas le navigateur qui est l'expansion des caractères, il est la définition de la police elle-même. Je doute qu'il existe un vraiment qui inclut la police à espacement fixe tous ces personnages et définit tous à la même largeur, mais c'est ce que vous devriez rechercher. Voir cette question pour plus de détails sur les raisons de ce qui est probablement pas disponible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top