3

私のウェブサイトでは、ユーザーのユーザー名は常にすべてのページの上部に(サイトのタイトル、他のページのリンクなどとともに)「3」のフォントサイズで表示されます。

これを理解するのに非常に長い時間がかかりましたが、最終的には、ユーザー名が非常に長いユーザーがすべてのページの上部のスペースをめちゃくちゃにしてしまい、すべてのテキストが1行下に押し出されて、全体が罪のように醜く見えます(ユーザー名であるため、個々のユーザーにのみ表示されますが、ユーザーに表示されたくありません)。

私は彼らの名前の文字数を見つける方法を尋ねていません-私が知りたいのは、彼らの名前が占める物理的なスペースの量をどのように決定できるかです、そしてそれが長すぎる場合は、フォントサイズを2、または必要に応じて1にします。

単純なstrlen()が機能しない理由は、潜在的なスペースの違いによるものです( "Tragic Dionysus"は、 "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 に答える