2011-12-12 15 views
4

特定のテーブルの列の長さを短くしようとしています。テキストオーバーフロー:Internet Explorerの省略記号の問題

私はいくつかのjQueryを使ってテキストオーバーフローの省略記号といくつかのCSSプロパティを追加しています。
また、もう少しjQueryを使用してツールチップを追加します。 ここに私のコードです:

$('#table_id tr td:not(:last)').css({ 
"text-overflow": "ellipsis", 
"max-width": "110px", 
"overflow": "hidden", 
"display" : "block" 
}).each(function (index, element) { $(element).attr("title", $(element).text()); }); 

すべてがFirefoxとChromeで正常に動作しますが、(!!驚き驚き)IE7-9は、その中のテキストが完全な長さだレンダリングします。

私は間違って何を考えていますか? ありがとう!

P.S.
"width"プロパティを無駄に指定しようとしました。

+1

試してみます。 – rcode

答えて

6

また、tdにはwhite-space:nowrap;が必要です。さらに、テーブル自体にtable-layout:fixed;を設定する必要があります。そうしないと、IEは引き続きテキストを切り捨てません。この問題横切る他の誰のために

2

、私はIEを幸せにするために高さを定義するために持っていたことが分かった、height:20px;

+0

私のために働かなかった。 –

+0

私のために働いた!ありがとう! – tienbuiDE

0

IE7は、テーブル要素のテキスト・オーバーフローを適用されません - あなたがラップする必要がありますそれ以外の場合は余計含む要素内のコンテンツ、およびそれにあなたのtext-overflow(および関連するスタイル)を適用:nowrap`と `幅:100%` `空白を追加すること

$('#table_id tr td:not(:last)').each(function (index, element) { 
    var $el = $(element); 
    var text = $el.text(); 
    var html = $el.html(); 

    $el.attr("title", text).empty(); 

    $('<div>').css({ 
    "text-overflow": "ellipsis", 
    "max-width" : "110px", 
    "overflow"  : "hidden", 
    "display"  : "block" 
    }).html(html).appendTo($el); 
} 
関連する問題