0

Is there a ruby\rails way to determine string length?
(There is a example below with both a and b length equal to 10 chars but quite different actual length)

e.g.
a = lllllllllll
b = WWWWWWWWWWW

Font should also be considered

P.S.
ended up using https://github.com/tbasse/jquery-truncate on a client-side

4

2 に答える 2

1

サーバー側から、文字列の幅をピクセル単位で知る方法はまったくありません。CSS で指定したのと同じフォントを使用して文字列をレンダリングすることで推測できますが、エンドユーザーはブラウザーでこれらの設定をオーバーライドして、推測を無効にすることができます。または、ユーザーがあなたのフォントを持っていない可能性があり、ブラウザは、特定の文字の幅が異なる同様のファミリのフォントに置き換えます。結果はまたあなたが思っていたものとは異なるでしょう。

それを知る唯一の方法は、それが可能であるとしても、ユーザーのブラウザーで JavaScript を使用し、ユーザー CSS によって指定された、最終的にレンダリングされるフォントが何であるかに基づいて計算し、それをサーバーに返してさらに処理することです。しかし、それは Web とブラウザーがどのように機能するかという考えを実際に壊してしまいます。

于 2013-04-17T15:57:37.887 に答える