由于有些不可避免的原因(大量遗留代码、兼容性、设计需求),我有以下问题:我有两张表,一张直接在另一张下方,但分成两帧(请参阅我的 sig 下方的伪示例。) . 我需要这些表的列宽完全同步,以便这两个表“行为”像一个。原因是有一个不会在可以滚动的“数据”表上方滚动的“标题”表。
现在有一些明显的建议(还)不起作用。
首先,我听说通过使用 CSS 可以将滚动条放在表格行上,而不是表格标题上,这就是这里的预期效果。不幸的是,由于上述原因,这不是一个可行的选择。
其次,列上的百分比宽度格式。不幸的是,滚动条会搞砸这个问题,而且这个解决方案也与下一个可能的解决方案有共同的问题:像素宽度格式。在这里,如果存在超宽的列内容,这些宽度(px 或 %)将在一个表中被覆盖,但不会在另一个表中被覆盖,并且一个不匹配的宽度将破坏所有垂直对齐。显然用 CSS 'max-width' 纠正这个似乎不起作用。
最终可能的解决方案是使用某种 Javascript 和 DOM 来动态强制解决问题。在这里强制每列的最小宽度并强制底部宽度覆盖顶部宽度就足够了。尽管如此,实际上将一个表一分为二同时让它们共享相同的列/行模型的能力还是很不错的。希望这个解决方案是可行的并且不是非常复杂(请原谅我目前缺乏关于 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>