在桌面上设置最大高度的跨浏览器方式是什么?

时间:2009-08-19 21:16:27

标签: css cross-browser

我有一个表格,我设置了tbody的高度

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

问题是,当表有1个条目时,1条目在FF3中为500px高。我希望1条目仍然是20px(或我指定的任何内容)。另一个问题是Safari甚至无法识别此500px设置,因此表格没有最大高度。我只想要一个可滚动的表格,一次显示500px高价值的条目。关于如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:9)

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

可以display: block添加到tbody。因为在这种情况下它不再是table-* display types之一,使它达到高度。但是,由于tbody不再是table-row-group,因此您最终会在其中再次使用隐式表。因此,任何其他theadtbodytfoot元素中的任何列都将不再与该可滚动tbody对齐。

除了列不匹配之外,这确实使得几乎在除IE之外的所有最新浏览器中都能正常工作。您应该能够自己修复剩余的问题。

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

答案 1 :(得分:0)

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