我正在使用steam的openID作为我的php网站的一部分,这意味着一些用户名可能会很长。
当我显示它们时,我想缩短它们以使它们适合某个空间。
我目前的解决方案是:
$string = (strlen($alias) > 20) ? trim(substr($alias,0,20), ' ') . '...' : $alias;
所以我基本上取用户名的前20个字符并在最后添加“...”。
这没关系,但游戏玩家会制作奇怪的用户名,并且“iiiiiiiiiiiiiiiiiiii”和“wwwwwwwwwwwwwwwwww”之间实际显示像素的差异在大多数字体中都相当大。 (W会要求我将其限制为13个字符,而我允许最多41个,20个有点作品,但有些名称比其他名称缩短了很多)
我可以选择间距相等的字体,但它们通常看起来不太好看。
我有什么选择?
答案 0 :(得分:3)
我认为最好使用css text-overflow: ellipsis
代替:
overflow: hidden;
text-overflow: ellipsis;
答案 1 :(得分:0)
你可以通过使用css试试这个来实现这个
HTML:
<div id="div_wrap">
wwwwwwwwwwwwwwwwwwww
</div>
<div id="div_wrap">
iiiiiiiiiiiiiiiiiiii
</div>
CSS:
#div_wrap{
width: 50px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
参见 DEMO