如何找到字符串的物理长度?

时间:2013-01-28 22:41:31

标签: php javascript html css

在我的网站中,用户的用户名始终显示在每个页面的顶部(连同网站标题,其他页面链接等),字体大小为“3”

我花了很长时间才弄明白这一点,但最终我注意到用户名很长的用户最终弄乱了每页顶部的空格,所有文字都被推到了一条线上,使整个事情看起来像罪一样丑陋(它只对个人用户可见,因为它是他们的用户名,但我不希望我的任何用户都看到它。)

我不是在问他们如何找到他们名字中的字符数 - 我想知道的是我如何确定他们的名字占据的实际空间数量,以及如果事件太长,请将字体大小减小到2,如果需要甚至减1。

简单的strlen()不起作用的原因是因为潜在的空间差异(“Tragic Dionysus”占用的空间比“HERSHEYFEVER”少,不管前者有更多的字符)。

广泛的谷歌搜索不断给我留下更多的字符计数方法,所以我无能为力。

3 个答案:

答案 0 :(得分:4)

你不能使用PHP - 因为这很大程度上取决于前端样式(字体系列,字体大小,字体样式等)。您可以使用jQuery来确定元素长度,并在需要时应用某些功能:

<强> HTML

<span id="box"><?=$yourString?></span> 

<强>的jQuery

$(function() {
   var box = $('#box');
   if (box.width() >= 50) {
      box.addClass('massiveLength');
   }
});

或者,如果您想对所有元素应用某些内容,here's a jsFiddle会向您展示如何。

答案 1 :(得分:1)

从根本上说,在服务器上做这件事是不可能的。

相反,使用Javascript获取元素的实际宽度,然后减小其字体大小。

答案 2 :(得分:0)

我只是要抛弃它,但如果你将一个用户名块包装在一个元素中并给它一个最大宽度,它可能会解决你的问题。

<span style="max-width: 50px; overflow: hidden;">The Username Goes Here</span>