javascript - 我怎样才能衡量有多少字符适合文档的宽度?

标签 javascript jquery string

我需要用 JavaScript(我使用的是 jQuery)编写一个函数,该函数知道适合浏览器窗口一行的字符数。我正在使用等宽字体来缓解这个问题,但如果我将它概括为不同的字体会更好。

我如何知道在浏览器中有多少字符会填满一行?目的是计算填充一行的字符数。

最佳答案

您可以创建元素并向其附加字符,直到您检测到换行,例如通过观察 offsetHeight 的变化(您可以使用二分法对其进行优化)。

这当然非常依赖于浏览器、系统、安装的字体和用户的设置,因此每次显示页面、调整大小或用户更改字体大小时(甚至整页缩放),您都必须为每个文本片段计算它引入了一些可能导致字符数更改的差一错误。

因此,在大多数情况下,它可能是矫枉过正,如果实现不当,造成的麻烦多于解决的问题。

还有其他解决方案,例如如果你想确保只有一行可见,你可以使用 white-space:nowrapoverflow:hidden 并且在某些浏览器中 text-overflow:ellipsis 使文本切割得很好。或者,如果您不想 chop 文字,请使用带 overflow:hidden 的 1 行高容器。

关于javascript - 我怎样才能衡量有多少字符适合文档的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/875183/

相关文章:

javascript - IE 显示错误 - 对象不支持此属性或方法

javascript - 为什么 Jquery 表单提交事件没有触发?

java - 从 HTML 源中提取字符串

javascript - 向 Observable 发射新值

javascript - 如何在 IFRAME 中筛选跨来源的抓取?

javascript - 如何让div保持在视口(viewport)的中心

javascript - 获取 ng-repeat 中选定复选框的值

javascript - 如何使用 JavaScript 对象中的数据完成 html 表单

java - 从字符串中获取所有字符及其编号

C++字符串,字符串不能包含加号