Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengira Lebar Teks dengan Tepat dalam JavaScript Tanpa Fon Monospace?
Soalan:
Bagaimanakah lebar teks boleh dikira dengan tepat dalam JavaScript tanpa bergantung pada monospace fon?
Jawapan:
Dalam HTML 5, kaedah Canvas.measureText menyediakan penyelesaian. Berikut ialah contoh:
function getTextWidth(text, font) { const canvas = document.createElement('canvas'); const context = canvas.getContext('2d'); context.font = font; const metrics = context.measureText(text); return metrics.width; }
Fungsi ini mengukur lebar teks dalam piksel berdasarkan fon yang ditentukan. Contohnya:
console.log(getTextWidth('hello there!', 'bold 12pt arial')); // Outputs approximately 86
Anda juga boleh menentukan tetapan fon daripada elemen sedia ada menggunakan fungsi utiliti getCanvasFont:
function getCanvasFont(el) { const fontWeight = getCssStyle(el, 'font-weight') || 'normal'; const fontSize = getCssStyle(el, 'font-size') || '16px'; const fontFamily = getCssStyle(el, 'font-family') || 'Times New Roman'; return `${fontWeight} ${fontSize} ${fontFamily}`; } const fontSize = getTextWidth(text, getCanvasFont(myEl));
Pendekatan ini menawarkan kelebihan berbanding Kaedah berasaskan DOM:
Walau bagaimanapun, ambil perhatian bahawa:
Atas ialah kandungan terperinci Bagaimana untuk Mengira Lebar Teks dengan Tepat dalam JavaScript Tanpa Fon Monospace?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!