我已经查看了与此相关的类似 SO 帖子,但没有一个与我正在寻找的内容完全相关。假设我有一些文本,我将其放入一个 div 中,并为该 div 添加一些任意(甚至可能是动态的)宽度。有没有什么方法可以让我以编程方式捕获和操作 div 中的单行文本(例如,捕获每一行文本,然后将其包装在其自己的 span 标签中,或者类似的东西使我能够操作单行)?
我已经能够使用等宽字体完成此操作,并且基本上首先每行创建一个跨度并为每个跨度分配相同数量的字符(使用一些额外的代码,所以单词当然不会被截断),但我会喜欢能够使用非等宽字体执行此操作,这当然会导致问题,因为非等宽字体的字符水平间距会有所不同。
var str = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
container = $('<div>');
container.width('100px').html(str).appendTo('body');
这个输出几乎是你所期望的。它住在这里。我想弄清楚的是:
换行时是否会自动插入我可以访问的换行符?
DOM 中是否有任何其他机制或属性我可以破解来操纵 div 中的一行?
是否有另一种方法可以保留非等宽文本自然流动的外观,同时能够逐行访问文本?正如我上面所说,我已经用等宽文本实现了这一点,但我的方法依赖于等宽文本的统一水平间距。