我很好奇快速应用程序(也许 Safari 在这里是一个更好的例子)使用什么技术来计算非常长的文本页面(例如,聊天日志或巨大的文档)的高度。
考虑到具有相同行高的大量文本,这已经是可以乘以这些行数的东西了。<p>
但是,如何知道在特定宽度上将跨越多少行?
我能带来的是他们:
- 计算每个字符的宽度并将其存储以便快速添加,
- 用它来计算单词的宽度,
- 在与块级宽度比较的同时添加单词和空格的宽度,根据需要添加行。
这看起来确实非常快,因为添加和比较比在 GDI+ 中测量字符串要快得多。但是我不知道这样的事情是否已经完成,因为可靠性是第一位的,而且 AFAIK 文本渲染通常会引入字距调整,而且我不知道从 GDI+ 获取这些信息有多容易或多难。
此外,ReactOS 的截图让我相信 Firefox 会计算每个字母的大小和位置。