Comment pouvez-vous trouver la hauteur de texte sur un canevas HTML?

La spec a un contexte.savoir measuretext(texte) la fonction qui va vous dire combien de largeur, il aurait besoin d'imprimer ce texte, mais je ne peux pas trouver un moyen de savoir quelle est la taille c'est. Je sais que c'est en fonction de la police, mais je ne sais pas à convertir une police de caractères chaîne de caractères à une hauteur de texte.

  • J'aimerais savoir une meilleure façon que la réponse sommet. S'il existe un algorithme pour prendre le point arbitraire de la police et de trouver le max/min des bornes sur elle, j'en serais très heureux d'en entendre parler. =)
  • il semble y être. Voir la réponse de ellisbben (et mon amélioration à elle).
  • Je me demandais si le Caractère Unicode 'pâté' (U+2588) pourrait être utilisée comme une approximation en multipliant la largeur par deux.
  • Il est intéressant de noter que la réponse dépend un peu de vos besoins. Par exemple, la hauteur nécessaire pour rendre le caractère "a" est différent de la hauteur nécessaire pour rendre le caractère "y", en raison de la descente qui s'étend au-dessous de la ligne de base de la police. Le HTML en fonction des réponses ci-dessous ne tiennent pas compte de cela et de vous donner une hauteur appropriée pour n'importe quel texte, alors que @Noitidart réponse donne une image plus exacte de la hauteur de texte spécifique.
  • N'oubliez pas que vous pouvez avoir des personnages qui ressemblent à ce M̶̢̹̝͖̦̖̭͕̭̣͆̃̀̅̒̊͌̿ͅ, donc c'est vraiment un problème épineux afin de le résoudre dans le cas général.
InformationsquelleAutor swampsjohn | 2009-07-15