将文本适配到固定大小的div中

3
我有一个固定大小的
,需要用文本填充它。我只需填充足够适合它的文本,并且需要知道截断字符串的偏移量。
目前,我是通过保存
的当前高度,然后将
的高度设置为auto,逐渐将子字符串放入
中,并在
的高度大于原始高度时停止。这个方法虽然可行,但效率不高。
是否有更好的方法?更好的意思是更快的方法。

我正在处理这个问题。但是我有一个问题。您的div宽度/高度是多少,以便放置文本? - Will
@William,这没关系,执行此操作的函数应该能够接受任何固定大小的 div 并填充它(我的当前函数可以实现此操作)。虽然我不需要你为我编写整个函数,但我需要知道确定要放置多少文本的方法。感谢你的帮助。 - Seth Carnegie
2个回答

5

好的,我想到了这个方案:http://jsfiddle.net/r5Njr/。 这可以使文本适应div容器大小。 如果你想更加高级一些,可以将最后两个或三个字符替换成 ...


这正是我已经在做的,而且我每次处理50个字符,而不是1个,但仍然太慢了。谢谢。 - Seth Carnegie
好的...稍作修改。听起来你有很多文本。因此,这个版本通过计算(而不是删除字符)将其缩减到所需行的上一行。然后它通过字符截断。[http://jsfiddle.net/r5Njr/2/] - Will
这似乎更好,但无论div有多宽,它总是出现相同的文本。例如,看看这个:http://jsfiddle.net/r5Njr/5/ - Seth Carnegie
那是因为它不管文本是否适合都进行计算。现在它会在计算之前进行测试。[http://jsfiddle.net/r5Njr/6/] - Will
我现在无法测试它,但从我所看到的来看,它看起来会很好用。非常感谢! - Seth Carnegie

0
也许我没有正确理解问题,但为什么不使用 substr 并获取确切的字符数呢?

我怎么知道确切的字符数是多少?我只有一个固定大小的div和一个字符串。我需要知道从该字符串中放入多少文本以使其完全适合该div。 - Seth Carnegie
好的,这总是一个近似值,因为不同的字符需要更多的字符。但我会试错直到找到大约的字符数。然后只需使用substr来一直获取那个固定数量。如果需要,检查浏览器并获取不同浏览器的不同字符数。这总是一个近似值,但速度快,我认为应该足够了。 - jribeiro
近似值不够好,我需要它是精确的。此外,由于变宽字符的存在,一个文本与另一个文本甚至都不接近。 - Seth Carnegie
这很有帮助,但并不能解决我的问题。我无法修改我正在处理的文本。 - Seth Carnegie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接