在我的网站中,用户的用户名始终显示在每个页面的顶部(连同网站标题,其他页面链接等),字体大小为“3”
我花了很长时间才弄明白这一点,但最终我注意到用户名很长的用户最终弄乱了每页顶部的空格,所有文字都被推到了一条线上,使整个事情看起来像罪一样丑陋(它只对个人用户可见,因为它是他们的用户名,但我不希望我的任何用户都看到它。)
我不是在问他们如何找到他们名字中的字符数 - 我想知道的是我如何确定他们的名字占据的实际空间数量,以及如果事件太长,请将字体大小减小到2,如果需要甚至减1。
简单的strlen()不起作用的原因是因为潜在的空间差异(“Tragic Dionysus”占用的空间比“HERSHEYFEVER”少,不管前者有更多的字符)。
广泛的谷歌搜索不断给我留下更多的字符计数方法,所以我无能为力。
答案 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>