我需要用 JavaScript(我使用的是 jQuery)编写一个函数,该函数知道适合浏览器窗口一行的字符数。我正在使用等宽字体来缓解这个问题,但如果我将它概括为不同的字体会更好。
我如何知道在浏览器中有多少字符会填满一行?目的是计算填充一行的字符数。
最佳答案
您可以创建元素并向其附加字符,直到您检测到换行,例如通过观察 offsetHeight
的变化(您可以使用二分法对其进行优化)。
这当然非常依赖于浏览器、系统、安装的字体和用户的设置,因此每次显示页面、调整大小或用户更改字体大小时(甚至整页缩放),您都必须为每个文本片段计算它引入了一些可能导致字符数更改的差一错误。
因此,在大多数情况下,它可能是矫枉过正,如果实现不当,造成的麻烦多于解决的问题。
还有其他解决方案,例如如果你想确保只有一行可见,你可以使用 white-space:nowrap
和 overflow:hidden
并且在某些浏览器中 text-overflow:ellipsis
使文本切割得很好。或者,如果您不想 chop 文字,请使用带 overflow:hidden
的 1 行高容器。
关于javascript - 我怎样才能衡量有多少字符适合文档的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/875183/