使用 JavaScript 计算文本宽度


要计算文本宽度,我们可以使用 JavaScript 中的 `measureText()` 方法。在 canvas 中,`measureText()` 方法用于测量文本内容的宽度。这意味着我们可以将文本传递给此 canvas 方法,然后调用该方法来测量文本。它将返回一个包含关于已测量文本的信息的对象。

有时,宽度可能是浮点值;因此,使用 `Math.ceil()` 方法将值四舍五入并返回整数。

语法

以下是用于计算文本宽度的使用方法的语法:

const text = "Hello World!";
const canvas = document.createElement("canvas");
const ctx = canvas.getContext('2d');
let text = ctx.measureText(text);
console.log(text.width);

计算文本宽度的步骤

步骤 1 – 声明我们要计算其宽度的文本。可以选择使用 innerHTML 属性在屏幕上显示文本,以便用户更好地理解。

步骤 2 – 使用 `document.createElement()` 方法创建一个 canvas 元素。

步骤 3 – 使用 `canvas.getContext("2d")` 获取上面创建的 canvas 的上下文。

步骤 4 – 使用 `context.measureText(text).width` 属性测量文本宽度。

步骤 5 – 使用 `Math.ceil(width)` 计算最终宽度。

步骤 6 – 最后显示文本的最终宽度。

示例

计算文本宽度

在下面的示例中,我们计算文本的宽度。文本内容是“Hello World!”。您可以更改文本内容并查看输出中的差异。

<!DOCTYPE html>
<html>
<body>
   <h2>Calculating width of the text using canvas</h2>
   <p id="text" style="font-size : 20px"></p>
   <p>Width of the text is:
      <span class="output"></span>
   </p>
   <script>
      const text = "Hello World!";
      document.getElementById("text").innerHTML = text;
      const canvas = document.createElement("canvas");
      const context = canvas.getContext("2d");
      const width = context.measureText(text).width;
      const finalWidth = Math.ceil(width) + "px";
      document.querySelector('.output').textContent = finalWidth;
   </script>
</body>
</html>

在上面,我们创建了一个 canvas 元素并将文本传递给 `canvas.measureText()` 方法,该方法返回一个对象。从中我们得到所选文本的宽度。`Math.ceil()` 从浮点值返回四舍五入的值。返回值以像素为单位。

示例

计算包含文本的 HTML 元素的宽度

我们使用 `clientWidth` 和 `clientHeight` 属性来计算 `

` 元素的宽度。

<!DOCTYPE html>
<html>
<body>
   <h1>Calculating width of the text</h1>
   <p id='text' style = "font-size:30px">
      Text to calculate : "Hello World!"
   </p>
   <p>Width of the text is:
      <span class="output"></span>
   </p>
   <script>
      const text = document.getElementById("text");
      const height = text.clientHeight
      const width = text.clientWidth
      document.querySelector('.output').textContent = width + " px";
   </script>
</body>
</html>

这里,`clientWidth` 属性将给出文本的宽度。我们从 id 为“text”的 p 标签中获取文本。

在上面,我们看到了如何使用 `clientWidth` 和 `canvas.measureText()` 方法计算文本的宽度。希望这篇文章能阐明如何计算文本的宽度。

更新于:2022-12-08

8K+ 次浏览

开启您的 职业生涯

完成课程获得认证

开始学习
广告