IE6で正常に実装され、IE8で期待通りに動作しないという要件があります。説明は次のとおりです。 テーブルには垂直および水平スクロールの固定ヘッダーがあります。水平スクロールは多くの列が20ほどあるため必要です。水平スクロールではヘッダーは固定されていませんが、垂直に固定されています。 これは技術的に2つのテーブルを使用して行われ、1番目のテーブルはヘッダーとして機能し、2番目のテーブルはcontentとして機能します。また、TD幅を動的に計算し、JAVASCRIPTを使用して幅を設定します。 テーブル幅はIE8では表示されません。私はCSSの問題としてこれを見つけましたが、エラーがどこに正確に置かれているか分かりません。これを楽しみにしています。固定テーブルヘッダーIE8の幅
//Function to set cell width of table containing header and the table containing content in synch.
function setTableColumnWidth(table1, table2) {
for (i = 0; i < 21; i++) {
var tablecell1 = document.getElementById(table1).rows[0].cells[i].offsetWidth;
var tablecell2 = document.getElementById(table2).rows[0].cells[i].offsetWidth;
if (tablecell1 > tablecell2) {
document.getElementById(table2).rows[0].cells[i].style.width = tablecell1;
} else {
document.getElementById(table1).rows[0].cells[i].style.width = tablecell2;
}
if (i == 20) {
var table1col12 = document.getElementById(table1).rows[0].cells[i].offsetWidth;
document.getElementById(table1).rows[0].cells[i].style.width = table1col12 + 20;
}
}
}
function checkTable(table1, table2) {
if (document.getElementById(table1).rows[0] != null
&& document.getElementById(table2).rows[0] != null) {
setTableColumnWidth(table1, table2);
}
}
これはJSコードです。しかし、私はこれは問題があるとは思わない。
私は答えはありませんが、私は助言を持っています。 JSなしでIEのレイアウトをハックするべきではありません。JSなしで1〜2%(5000人のうち50-100人)がJSを使用せず、すべてうまく混乱しているからです。 –
いくつかのコードと@ [JsFiddle](http://jsfiddle.net/)の例を楽しみにしています - それはawsomeでしょう:) – Andrej
@Sean、私は同意しません。今日、ほとんどのウェブサイトには、(SOのような)js、Ajax、タブ、ウィジェット、地図アプリケーションなどがどこにでも必要です...そして、javascriptをオフにしている人は何が起こっているかをよく知っているハッカーです。それは人の全体の1%でさえないでしょう、**セッションのちょうど1〜2%です**(これらの人々はよりアクティブであり、ロボットとスクリプトもこれらの統計に含まれています)。 – TMS