我有一个表格,我设置了tbody的高度
#ml_container table>tbody{ height: 500px; overflow: auto; overflow-x: hidden; }
问题是,当表有1个条目时,1条目在FF3中为500px高。我希望1条目仍然是20px(或我指定的任何内容)。另一个问题是Safari甚至无法识别此500px设置,因此表格没有最大高度。我只想要一个可滚动的表格,一次显示500px高价值的条目。关于如何做到这一点的任何想法?
答案 0 :(得分:9)
您无法在任何表格元素上设置固定或最大高度。 The height
property is only treated as a minimum height.
您可以将display: block
添加到tbody
。因为在这种情况下它不再是table-*
display types之一,将使它达到高度。但是,由于tbody
不再是table-row-group
,因此您最终会在其中再次使用隐式表。因此,任何其他thead
,tbody
或tfoot
元素中的任何列都将不再与该可滚动tbody
对齐。
除了列不匹配之外,这确实使得几乎在除IE之外的所有最新浏览器中都能正常工作。您应该能够自己修复剩余的问题。
我不知道如何在IE中修复它。我确实遇到过"Pure CSS Scrollable Table with Fixed Header",但这已经过时了,因为他的两个解决方案都在IE6中运行,但在IE7和IE8中也有可怕的破坏(以不同的方式)。但是,他们做在IE的Quirks模式下工作,所以如果你迫切需要它,那么这可能是你唯一的选择。
答案 1 :(得分:0)
Thom有正确的想法:使用javascript。如果窗口足够大,表格太大,请在表格/元素上设置固定的手动高度。 :d