3

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

我花了很长时间才弄清楚这一点,但最终引起我注意的是,用户名很长的用户最终会弄乱每页顶部的间距,并且所有文本都被推下一行,使得整个事情看起来像罪恶一样丑陋(它只对个人用户可见,因为它是他们的用户名,但我根本不希望我的任何用户看到它)。

我不是在问如何找到他们名字中的字符数——我想知道的是如何确定他们的名字将占用的物理空间量,如果它太长,减少字体大小为 2,必要时甚至为 1。

简单的 strlen() 不起作用的原因是潜在的空间差异(“悲剧狄俄尼索斯”占用的空间比“HERSHEYFEVER”少,不管前者有更多字符)。

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

4

3 回答 3

4

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

HTML

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

jQuery

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

或者,如果你想对所有元素应用一些东西,这里有一个 jsFiddle向你展示如何。

于 2013-01-28T22:45:56.373 回答
1

根本不可能在服务器上做好这件事。

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

于 2013-01-28T22:44:00.813 回答
0

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

<span style="max-width: 50px; overflow: hidden;">The Username Goes Here</span>
于 2013-01-29T02:34:02.230 回答