【发布时间】:2010-10-04 23:25:11
【问题描述】:
这是Can I create a HTML table width a percentage height but pixel accurate row heights? 的后续问题。
我在 HTML 页面中有一个表格,将用于表格数据(所以我不想要基于 div 的答案)。这需要以 100% 的高度呈现,第一行具有固定大小,第二行拉伸以适应剩余的可用区域。
我使用了以下代码:
<html>
<body>
<table style="border-collapse:collapse;height:100%;width:100%;">
<tr>
<td style="border:solid 1px black;height:100px">1</td>
<td style="border:solid 1px black">2</td>
</tr>
<tr>
<td style="border:solid 1px black">3</td>
<td style="border:solid 1px black">4</td>
</tr>
</table>
</body>
</html>
这可以按我的要求工作。
问题是,当我将它放入在 Visual Studio 中创建的 ASP.NET 页面中时,它会添加一个 DOCTYPE 元素。添加 DOCTYPE(并将 html 和 body 标签的 CSS 设置为包含 height:100%)后,表格的顶行比底行大得多,并且两行都没有固定高度。
我知道我应该使用 DOCTYPE 而不是依赖 Internet Explorer 中的“怪癖模式”来确保未来的兼容性。但是,我已经尝试了所有可以找到的 DOCTYPE 来尝试将此行为更改为我需要的但无法使其正常工作。它在 Firefox 中确实有效,但该工作适用于用户使用 IE7 的 Intranet。
如果您想查看问题,请尝试以下操作:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html style="height:100%">
<body style="height:100%">
<table style="border-collapse:collapse;height:100%;width:100%;">
<tr>
<td style="border:solid 1px black;height:100px">1</td>
<td style="border:solid 1px black">2</td>
</tr>
<tr>
<td style="border:solid 1px black">3</td>
<td style="border:solid 1px black">4</td>
</tr>
</table>
</body>
</html>
有人知道答案吗?
【问题讨论】:
-
-1 工作解决方案已在该问题stackoverflow.com/questions/495194/… 中发布
-
@cletus:该解决方案在标准模式下对我不起作用。 #bottom div 与窗口一样高,#top 顶部有 100px,所以我得到了一个滚动条。
-
是的。对我也不起作用。