Le calcul de la largeur d'une chaîne à l'aide de JavaScript n'est pas immédiatement simple, en particulier lorsque vous utilisez une police non monospace. Ici, nous explorons une solution utilisant la méthode Canvas.measureText en HTML 5.
Pour utiliser Canvas.measureText, nous créons un contexte de canevas et l'attribuons le style de police souhaité. Ensuite, nous utilisons la méthode MeasureText pour mesurer la largeur du texte spécifié.
function getTextWidth(text, font) { const canvas = getTextWidth.canvas || (getTextWidth.canvas = document.createElement("canvas")); const context = canvas.getContext("2d"); context.font = font; const metrics = context.measureText(text); return metrics.width; }
Par exemple, pour calculer la largeur de "bonjour !" dans la police "bold 12pt arial", nous pouvons faire :
console.log(getTextWidth("hello there!", "bold 12pt arial")); // close to 86
Si nous voulons utiliser la taille de police d'un élément spécifique, nous pouvons utiliser getCanvasFont fonction utilitaire :
const fontSize = getTextWidth(text, getCanvasFont(myEl));
Par rapport à Méthodes basées sur le DOM, la méthode Canvas présente plusieurs avantages :
Un benchmark jsperf montre que la méthode Canvas et une méthode de mise en cache basée sur DOM ont des performances similaires, sauf dans Firefox où la méthode Canvas est nettement plus rapide.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!