2012-01-13 6 views
0

巨大なテーブルの左上のいくつかの行と、いくつかの列をフリーズする必要があります。これは、純粋なCSS(単一の大きなテーブルを保持)で行うことができますか、またはテーブルを3つのテーブルに分割し、それらを同期させるためにJavaScriptを使用する必要がありますか?幸いにもすべてのセルは幅と高さが固定されており、柔軟なセルを収容する必要はありません。表の行と列の両方のヘッダーをフリーズするための純粋なCSSソリューションはありますか?

ああ、ブラウザサポート - IE7 +がサポートされている必要があります。私はそれが必要かどうかは分かりません)。他のバージョンは最新バージョンにすることができます。

+0

私はそこにいるかどうかはわかりませんが、答えに違いが出る可能性があるので、サポートが必要なブラウザについて言及する必要があります。 – robertc

+0

純粋にCSSを使用していないので、この作業を行うにはJavaScriptが必要です。これを参照してください - > http://www.codeproject.com/KB/scripting/FreezePanes.aspx – Undefined

+0

ブラウザサポートの要件が追加されました。 –

答えて

1

ここでは、列の問題を解決する不完全でクラージーな解決法があります。しかし、私は誰かがそれを価値あると思うと思った。いくつかの人々は「thead要素は」ヘッダのために働くかもしれないと指摘しているが、誰が列にソリューションを提供していない:

http://jsfiddle.net/C8Dtf/20/

それは垂直方向のスクロールを処理するために、水平方向と別のものを処理するために、1つのdivで動作します。主な問題は、下に移動するまで水平スクロールバーが表示されないことです(ただし、マウスホイールのスクロールはうまく機能します)。それはIE7で動作し、私はいくつかのディスプレイを使用しました。注:私はテーブルを作成するためにJavaScriptを使用しています。

ちょっと苦労して私の直感は、純粋なCSSソリューションはありません。私は、両方向のスクロールを同期させる方法は想像できません。

+0

私はテーブルセルで 'position:fixed'を設定しようとしましたが、ビューポート相対座標に依存しています。私はiframe自体にテーブルを配置すると思いますが、私はむしろJavascriptのルートを取るでしょう... –

+0

私が誤解していない限り、私は両方の列でどのように動作するのか分かりません。つまり、固定またはiframeは一方向では機能しますが、フリーズした行/列を反対の方向に同期させる必要があります。私の脳はちょうどそれについて考えて痛い。 JavaScriptは本当に悪くないはずです。とにかく、受け入れてくれてありがとう。 – Jere

+0

問題ありません。私は、「純粋なCSSソリューションがない」よりも良い答えはないだろうと思います。 "固定"の解決策...あなたが正しいと思います。私は何か誤解しているに違いない。固定要素は、すべてのスクロールバーを無視するので、何か良いものにすることはできません。 –

関連する問題