2009-08-19 57 views
2

我有一个表,我设置了TBODY的高度在桌子上设置最大高度的跨浏览器方式是什么?

#ml_container table>tbody{ height: 500px; overflow: auto; overflow-x: hidden; } 

的问题是,当表中有1项,1项是500像素高FF3。我希望1条目仍然是20px(或者我指定的任何东西)。另一个问题是,Safari甚至无法识别这个500像素的设置,所以表格没有最大高度。我只想要一个可滚动的表格,一次显示500px高的条目。任何想法如何做到这一点?

回答

9

您无法在任何表格元素上设置固定或最大高度。 The height property is only treated as a minimum height.

可以display: block加到您的tbody。由于它不再是那种情况下的table-* display types之一,所以将使变成高度。但是,由于tbody不再是table-row-group,因此您最终会再次隐含一个隐式表。因此,任何其他thead,tbodytfoot元素中的任何列将不再与可滚动的tbody对齐。

除了列不匹配,尽管如此,这确实使它几乎可以在除IE以外的所有最新浏览器中工作。你应该能够自己解决剩下的问题。

但我不知道如何在IE中修复它。我确实碰到过"Pure CSS Scrollable Table with Fixed Header",但这已经过时了,因为他的两个解决方案都在IE6中工作,但在IE7和IE8中(以不同的方式)破坏严重。他们工作在IE的怪癖模式,但是,如果你迫切需要它,那可能是你唯一的选择。

0

Thom有正确的想法:使用JavaScript。如果窗口太大,窗口太大,请在表格/元素上设置一个固定的手动高度。 :D