0

是否有 ruby​​\rails 方法来确定字符串长度?
(下面有一个例子ab长度都等于 10 个字符,但实际长度完全不同)

例如
a = lllllllllll
b = WWWWWWWWWWW

字体也应该考虑

PS最终在客户端
使用https://github.com/tbasse/jquery-truncate

4

2 回答 2

1

回复在这里

如何在 Ruby 中计算字符串的宽度?

the_text = "TheTextYouWantTheWidthOf"
label = Draw.new
label.font = "Vera" #you can also specify a file name... check the rmagick docs to be sure
label.text_antialias(true)
label.font_style=Magick::NormalStyle
label.font_weight=Magick::BoldWeight
label.gravity=Magick::CenterGravity
label.text(0,0,the_text)
metrics = label.get_type_metrics(the_text)
width = metrics.width
height = metrics.height
于 2013-04-17T12:04:26.597 回答
1

从服务器端绝对无法知道字符串的宽度(以像素为单位)。您可以通过使用您在 CSS 中指定的相同字体渲染字符串来进行猜测,但是最终用户可以在他们的浏览器中覆盖这些设置,从而使您的猜测无效。或者,用户可能没有您使用的字体,而浏览器会替换为类似系列的字体,该字体对于某些字符具有不同的宽度;结果又会和你想的不一样。

如果可能的话,唯一知道的方法是在用户的浏览器中使用 JavaScript,根据任何用户 CSS 指定的最终渲染字体的计算,然后将其返回到您的服务器以进行进一步处理,然而,这确实打破了网络和浏览器如何工作的想法。

于 2013-04-17T15:57:37.887 回答