当前位置: 首页 > 面试题库 >

使用JavaScript计算文字宽度

江鹏
2023-03-14
问题内容

我想使用JavaScript计算字符串的宽度。是否可以不必使用等宽字体?

如果不是内置的,我唯一的想法就是为每个字符创建一个宽度表,但这是非常不合理的,特别是支持Unicode和不同类型的大小(以及与此相关的所有浏览器)。


问题答案:

创建具有以下样式的DIV。在JavaScript中,设置要测量的字体大小和属性,将字符串放入DIV中,然后读取DIV的当前宽度和高度。它将拉伸以适合内容,并且大小将在字符串呈现大小的几个像素之内。

var fontSize = 12;

var test = document.getElementById("Test");

test.style.fontSize = fontSize;

var height = (test.clientHeight + 1) + "px";

var width = (test.clientWidth + 1) + "px"



console.log(height, width);


#Test

{

    position: absolute;

    visibility: hidden;

    height: auto;

    width: auto;

    white-space: nowrap; /* Thanks to Herb Caudill comment */

}


<div id="Test">

    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

</div>


 类似资料:
  • 问题内容: 我正在使用Java绘制一些文本,但是对我来说很难计算字符串的宽度。例如:zheng中国…这个字符串要占用多长时间? 问题答案: 对于单个字符串,您可以获取给定图形字体的度量,然后使用该度量来计算字符串大小。例如: 如果您有更复杂的文本布局要求,例如在给定宽度内流动一段文本,则可以创建一个对象,例如此示例(来自docs):

  • 本文向大家介绍使用JavaScript计算数字的除数,包括了使用JavaScript计算数字的除数的使用技巧和注意事项,需要的朋友参考一下 问题 我们需要编写一个JavaScript函数,该函数接受一个数字并返回其除数的计数。 输入 输出 因为除数是- 示例 以下是代码- 输出结果

  • 我需要阅读由AutoCAD导出为PDF的平面图,并使用PDFBox在上面放置一些带有文本的标记。除了文字宽度的计算之外,一切都很顺利,文字的宽度写在标记旁边。 我浏览了整个PDF规范,详细阅读了其中涉及图形和文本的部分,但没有任何效果。据我所知,字形坐标空间设置在用户坐标空间的1/1000处。因此,宽度需要放大1000倍,但仍然是实际宽度的一小部分。 这就是我为定位文本所做的: *0.043f可以

  • 问题内容: 在使用Javascript上传到服务器之前,是否可以计算文件的MD5hash ? 问题答案: 虽然有MD5算法的JS实现,但是 较旧的浏览器通常无法从本地文件系统读取文件 。 使用支持 FileAPI的浏览器,您可以*读取文件的内容 -用户必须通过元素或拖放方式选择 文件 。截至2013年1月,以下是主要浏览器的堆叠方式: FF 3.6支持FileReader,FF4支持更多基于文件的

  • 问题内容: 我试图找到一个可以理解的答案,但是放弃了。 为了在水平网站上具有动态 内容(如博客文章和图像),您必须为像素中的主体设置固定宽度,对吗? 因为您在其中使用浮动元素,否则浮动元素会折断并包装页面,具体取决于浏览器的宽度。 编辑!* 可以使用 jQuery 来 计算 该特定值,谢谢:)在此示例中,总大小中添加了一个附加值,该值可用于浮动元素之前的内容。现在,身体将获得动态宽度! * 我最初

  • 问题内容: 如何在Java中以像素为单位计算a的宽度? 例如,我有一个字符串说“ Hello World!”。 考虑到其字体系列和大小,它的像素长度是多少? 问题答案: 有多种方法可以实现想要的目标,例如,基于要实现的目标。 但这仅与上下文相关,并且不会转换为屏幕或打印机之类的内容。 但是,只要您具有上下文,就可以实现相同的结果。 显然,此示例使用了为上下文安装的默认字体,如果需要,可以更改…