やむを得ない理由 (多くのレガシー コード、互換性、設計の必要性) により、次の問題があります: 2 つのテーブルがあり、一方が他方の真下にありますが、2 つのフレームに分割されています (私の署名の下の疑似例を参照してください)。 . これら 2 つのテーブルが 1 つのように「動作」するように、これらのテーブルの列幅を正確に同期する必要があります。その理由は、スクロールできる「データ」テーブルの上にスクロールしない「ヘッダー」テーブルがあるためです。
現在、(まだ) 機能していない明らかな提案がいくつかあります。
まず、CSS を使用すると、テーブルのヘッダーではなく、テーブルの行だけにスクロールバーを配置する方法があると聞きました。これは、ここで意図した効果です。残念ながら、上記の理由により、これは実行可能なオプションではありません。
次に、列のパーセンテージ幅の書式設定です。残念ながら、スクロールバーはこれを混乱させます。この解決策は、次の可能な解決策であるピクセル幅の書式設定とも問題を共有しています。ここで、非常に幅の広い列コンテンツがある場合、これらの幅 (px または %) は 1 つのテーブルではオーバーライドされますが、他のテーブルではオーバーライドされません。どうやら CSS の「max-width」でこれを修正してもうまくいかないようです。
最終的に考えられる解決策は、ある種の Javascript と DOM を使用して問題を動的に強制することです。ここでは、各列に最小幅を強制し、下部幅を強制して上部幅をオーバーライドするだけで十分です。それでも、同じ列/行モデルを共有しながら、実際にテーブルを 2 つに分割する機能は非常に便利です。うまくいけば、このソリューションは実行可能であり、極端に複雑ではありません (RE Javascript/DOM の知識が不足していることをお許しください)。
ありがとう、
スコーレム
<!-- In frame 1 (top, non-scrolling): -->
<table id="t1" ...> (Just the header, really)
<tr>
<td>Name</td><td>User Image</td><td>Email</td><td>Favorite Language</td>
</tr>
</table>
<!-- In frame 2 (bottom, scrolling): -->
<!-- table "t2" intended to have equal column widths -->
<table id="t2" ...> (Data below the header)
<tr>
<!-- Lots of crazy stuff of wildly varying widths -->
<td>...</td><td>...</td><td>...</td><td>...</td>
</tr>
</table>