질문:
어떻게 하면 JavaScript에서 고정 폭 서체 없이 텍스트 너비를 정확하게 계산할 수 있습니까? 고정폭에 의존 글꼴?
답변:
HTML 5에서는 Canvas.measureText 메서드가 솔루션을 제공합니다. 예는 다음과 같습니다.
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; }
이 함수는 지정된 글꼴을 기반으로 텍스트 너비를 픽셀 단위로 측정합니다. 예를 들어:
console.log(getTextWidth('hello there!', 'bold 12pt arial')); // Outputs approximately 86
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));
이 접근 방식은 다음보다 이점을 제공합니다. DOM 기반 방법:
그러나 다음 사항에 유의하세요.
위 내용은 고정 폭 글꼴 없이 JavaScript에서 텍스트 너비를 정확하게 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!