Иногда нам нужно рассчитать ширину текстового содержимого в нашем коде JavaScript.

В этой статье мы рассмотрим, как рассчитать ширину текстового содержимого в нашем коде JavaScript.

clientHeight и clientWidth

Свойства clientHeight и clientWidth объекта HTML-элемента позволяют нам получить высоту и ширину элемента.

Следовательно, мы можем написать следующий HTML:

<p id='text'>
  hello world
</p>

для создания элемента.

Затем мы можем написать кодировщик JavaScript, чтобы получить высоту и ширину элемента:

const fontSize = 12;
const text = document.getElementById("text");
text.style.fontSize = fontSize;
const height = text.clientHeight
const width = text.clientWidth
console.log(height, width);

Мы получаем элемент p с getElementById.

Затем мы используем свойства clientHeight и clientWidth, чтобы получить высоту и ширину элемента p соответственно.

Затем мы регистрируем это с помощью консоли.

У нас должно получиться что-то вроде:

18 222

из журнала консоли.

Цифры в пикселях.

Canvas.measureText Метод

Элемент холста HTML имеет метод measureText, который позволяет нам измерять размер фрагмента текста.

Это означает, что мы можем поместить наш текст на холст, а затем вызвать его, чтобы измерить его размер.

Например, мы можем написать:

const text = 'hello world'
const font = "bold 12pt arial"
const canvas = document.createElement("canvas");
const context = canvas.getContext("2d");
context.font = font;
const {
  width
} = context.measureText(text);
console.log(width)

У нас есть переменные text и font с текстовым содержимым и стилями шрифта соответственно.

Затем мы создаем холст с createElement.

И мы вызываем getContext, чтобы получить контекст.

Затем мы устанавливаем свойство font со стилями шрифта.

Затем мы вызываем measureText с переменной text, чтобы измерить размер text.

Мы получаем свойство width из возвращенного объекта.

И мы должны увидеть число вроде 84.4453125, зарегистрированное в журнале консоли.

Число также в пикселях.

Заключение

Мы можем измерить размер текста с помощью свойств clientHeight и clientWidth элемента.

Кроме того, мы можем поместить наш текст на холст и использовать метод measureText для измерения ширины текста.