2011-10-21 6 views
2

正確な幅のdivボックスにテキストを挿入する必要があります。
すべての主要なブラウザでテキストを同じサイズに見せる方法(JavaScriptなど)はありますか?
たとえば、テキストが 'div'ボックスに収まらない場合は、いくつかの文字を削除します。さまざまなブラウザのテキストのサイズ(幅)

+3

隠されたCSSのオーバーフローが常にあります。 – kojiro

+0

これは私には適していません。オーバーフロー隠しは、中央の文字をカットすることができます。 – pi11

+0

@ pi11:「div 'ボックスにテキストが収まらない場合、いくつかの文字を取り除く」とはどういう意味ですか? –

答えて

0

まず、フォントの面とサイズをCSSで設定します。そうすれば、ほとんどの場合同じ幅になります。

次に、オーバーフローを追加できます。あなたの部門にそれが終わりを過ぎて行くものを表示しないように。

どのようにこれをやっているかによって、幅を設定せずに余白と余白を使用することができます。つまり、divに常に収まります。これはあなたが望むものではないかもしれませんが。

+0

フォントとサイズを設定しました。しかし、FFとChromeのテキストの違い(幅)。ここに例があります - http://imghs.com/i/NeZvKsiBVRbf/ – pi11

+0

あなたのページレイアウトは何ですか?さまざまなテキスト幅をサポートするためのより良い方法があります。たぶん必要以上に幅を設定し、テキストを中央に配置しますか? – xthexder

+0

私の場合、テキストはユーザー入力からのものです。だから彼らのサイズは常に異なっています。出力前にpythonで文字を切り捨てることはできますが、divボックス全体をテキストで埋める必要があります。そして私は正確なフォント幅を見積もることはできません。 – pi11

1

ちょうどあなたのdivのCSSルールに次のプロパティを追加します。

overflow:hidden; text-overflow:ellipsis; white-space:nowrap; 

することができますsee this in action here (JSFiddle)

+0

ニース。残念ながら私のFF4はテキストオーバーフローをサポートしていません:省略記号。 – pi11

+0

@ pi11 - これはよく知られたFFの問題です(http://stackoverflow.com/questions/4927257/text-overflowellipsis-in-firefox-4-and-ff5を参照)。おそらくFF7は最後に省略記号をサポートしています... –

0

CSSまたはJavaScriptを使用してテキストを切り捨てることができます。ここにテキストが切り捨てられた場合、リンク「詳細を表示し」することができます私が書いたシンプルなjQueryの切り捨てプラグインの例です:

$.fn.trunc = function(_break_at) { 

    var _article = jQuery(this).text(); 
    var _leader = []; 
    var _trailer = []; 
    var _substr = _article.split(' '); 
    $(this).wrapInner('<div class="long"></div>'); 

    $.each(_substr, function(i, data) { 
     if (i < _break_at) { 
      _leader.push(data); 
     } 
    }); 

    if (_substr.length > _break_at) { 

     $('<div/>').addClass('short').html(_leader.join(' ')).prependTo(this); 
     $('<span/>').appendTo('.long').addClass('toggle').html(' &lt;&lt; Show less'); 
     $('<span/>').appendTo('.short').addClass('toggle').html('... Show more &gt;&gt;'); 

    } 
    $('.toggle').click(function() { 
     $('.short, .long').toggle('show'); 
    }); 
}; 

$(function() { 

    // This is how you use it 
    $('#article_body').trunc(2); 
}); 

http://jsfiddle.net/AlienWebguy/7ZamJ

+0

ありがとうございます、しかし、どのようにテキストの各行に_break_at値を見積もりますか?たとえば、このテキスト - "lllllll"とこのテキスト - "WWWWWW"は幅が異なります(モノスペースフォントでない場合)。 – pi11

関連する問題