2011-01-17 6 views
1

私は列を表示/非表示にするためにいくつかのCSSがあるテーブルを持っています。各tdには、クラス "column"と "columnX"があり、Xは列番号です。 CSSは次のようになります。古いIEのCSSが動的に更新されていません

表はすべて非表示になり、ユーザーがオンにします。この場合、表示されている列に応じて、 "show1"や "show2"のような表にクラスが追加されます。

これは、FF、クロム、およびIE8で素晴らしい動作します。しかし、IE6/7では、「列」が「表示:ブロック」にならないという問題があります。しかし、私が開発者ツールバーに入り、CSSのルールを切り替えると、

table.showX .columnX {display: block; } 

うまくいきます。これらの古いブラウザは、javascriptでテーブルを更新することを知らないようです。また、(JavaScriptではなく)「show0」のようなクラスをテーブルに追加しても、IE6/7では正常に動作します。

この場合、既知の回避策はありますか?

答えて

0

まず、テーブルセルの正しい表示値はではなく、 "ブロック"です。それは "テーブルセル"です。とにかく、それは本当にそのような派手なものを理解していないので、それはとにかくIEの古いバージョンのための疑問な点です。テーブルがレンダリング最初<td>の列であるとき、もし(と:

今、次の問題は、古いIE(6、7、いない8)が最初にテーブルのセルをレンダリングするこの面白い機能を持っているという事実でありますあなたが好きな場合は上部の<th>)の要素は表示されず、DOMへのその後の変更はになりません。が表示されます。それはちょうどそのように愚かです。実際にはI've asked the same question hereです。

の後にHTMLが最初にレンダリングされた後、一部のコードが戻ってきて適切な列が見えなくなるという問題を回避するために行ったことがあります。彼らが目に見えるようになるかぎり、後で事態を起こさずに電源を切って戻すことができます。

+0

問題をどう解決しましたか?また、設定の可視性:非表示のいずれかの動作しないようだが、それは修正として提案されたが、あなたはそれを働かせることができましたか? –

+0

いいえ、それらの提案は私のために働いたことはありません。私がやったことは、私がここで説明していることです。目に見えないはずの列は目に見えて始まり、次にそれらを切り替えるためにいくつかのJavascriptを実行します。ばかばかしいことですが、それが私の知っている唯一のことです。 (もしあなたが何か良いものを見つけたら、私に知らせてください!) – Pointy

+0

ああ、また、「可視性」が働いたとしても、おそらくあなたが望むものではないでしょう。私の場合、私は本当に完全に消え去ったコラムを欲しがっていました。 「可視性:非表示」を選択すると、まだ画面に余裕ができます。 – Pointy

関連する問題