1

我很好奇快速应用程序(也许 Safari 在这里是一个更好的例子)使用什么技术来计算非常长的文本页面(例如,聊天日志或巨大的文档)的高度。

考虑到具有相同行高的大量文本,这已经是可以乘以这些行数的东西了。<p>但是,如何知道在特定宽度上将跨越多少行?

我能带来的是他们:

  • 计算每个字符的宽度并将其存储以便快速添加,
  • 用它来计算单词的宽度,
  • 在与块级宽度比较的同时添加单词和空格的宽度,根据需要添加行。

这看起来确实非常快,因为添加和比较比在 GDI+ 中测量字符串要快得多。但是我不知道这样的事情是否已经完成,因为可靠性是第一位的,而且 AFAIK 文本渲染通常会引入字距调整,而且我不知道从 GDI+ 获取这些信息有多容易或多难。

此外,ReactOS 的截图让我相信 Firefox 会计算每个字母的大小和位置。

4

0 回答 0