一尘不染

如何计算DOM元素内的文本行?我可以吗?

javascript

我想知道是否有一种方法可以计算div中的行数。假设我们有一个像这样的div:

<div id="content">hello how are you?</div>

取决于许多因素,div可以包含一行,两行或什至四行文本。脚本有什么办法知道吗?

换句话说,自动中断完全可以在DOM中表示吗?


阅读 318

收藏
2020-04-25

共1个答案

一尘不染

我坚信现在不可能了。是的,但是。

IE7的getClientRects实现完全符合我的要求。尝试刷新它以改变窗口宽度,并查看第一个元素中的行数如何相应变化。这是该页面中javascript的关键行:

var rects = elementList[i].getClientRects();
var p = document.createElement('p');
p.appendChild(document.createTextNode('\'' + elementList[i].tagName + '\' element has ' + rects.length + ' line(s).'));

对于我来说不幸的是,Firefox总是为每个元素返回一个客户端矩形,而IE8现在也是如此。(Martin
Honnen的页面今天可以使用,因为IE是在IE兼容视图中呈现它的;按IE8中的F12可以使用不同的模式播放。)

这真是难过;这真是伤心。看起来Firefox再次实现了字面意义,但毫无价值的实现赢得了微软有用的支持。还是我错过了新的getClientRects可以帮助开发人员的情况?

2020-04-25