2

我在页面上显示了一些用户输入的文本,需要很好地截断以适应固定宽度。Rails 内置了一个很好的帮助器,用于截断字符串,并指定省略文本,如下所示:

truncate(post.title, :length=>50, :omission=>link_to("...",post))

或者我可以像这样使用css,但这些都不是很令人满意。在某些文本被截断的情况下,我希望省略号链接到原始/全文,并且我希望截断相对于渲染时字符占用的实际空间起作用(不使用固定宽度字体),而不是相对于字符数。

所以。是否有对 css 版本的修复以使用任意 html 字符串作为截断文本?或者有没有办法让rails告诉字符串在截断时会占用多少空间?这似乎是人们遇到的一个问题,因为有一个用于截断文本的内置 Rails 助手,但是这些人都使用固定宽度的字体吗?

4

1 回答 1

2

在渲染之前,无法知道渲染的宽度。不同的浏览器/设备/字体可用性/设置会有所不同。

您唯一的解决方案是通过 javascript 计算宽度,然后修改标记、生成省略号链接等。

这里有几个答案中有许多相关的东西:用 JavaScript 计算文本宽度

更新这个特定的答案甚至为你添加了一个……:https ://stackoverflow.com/a/3140086/168143

于 2012-08-21T00:33:21.927 回答