使表格填满整个窗口

21

如何使HTML表格水平和垂直填满整个浏览器窗口?

网页只包含标题和一个分数,应该完全填满整个窗口。(我意识到固定字体大小是另一个问题。)

<table style="width: 100%; height: 100%;">
    <tr style="height: 25%; font-size: 180px;">
        <td>Region</td>
    </tr>
    <tr style="height: 75%; font-size: 540px;">
        <td>100.00%</td>
    </tr>
</table>
当我使用以上代码时,表格的宽度是正确的,但高度会缩小以适应两行文本。我可能需要使用Internet Explorer 8或9来展示此页面。
6个回答

26

您可以像这样使用position属性将元素拉伸到父容器中。

<table style="position: absolute; top: 0; bottom: 0; left: 0; right: 0;">
    <tr style="height: 25%; font-size: 180px;">
        <td>Region</td>
    </tr>
    <tr style="height: 75%; font-size: 540px;">
        <td>100.00%</td>
    </tr>
</table>

谢谢这些答案!我注意到在IE8中,这似乎延伸了大约另外10像素。有没有简单的解决方法,还是我应该坚持使用“height: 95%”? - Hand-E-Food
可能是 margin:0 或 padding:0 可以解决这个问题。 - Todd Baur
这并不防止表格在页面上方向垂直方向扩展。 - T30
1
能给我展示一些代码吗,这样我就可以帮忙了吗?表格将填充其父容器的宽度和高度。因此,如果父容器这样做,表格也会这样做。 - Todd Baur
绝对定位是相对于其父容器的。这意味着 '<div style="position:relative"> 将包含/约束一个绝对定位的元素,假设没有其他规则级联到它中。 - Todd Baur
显示剩余2条评论

12

你可以在http://jsfiddle.net/CBQCA/1/上查看解决方案。

或者

<table style="height:100%;width:100%; position: absolute; top: 0; bottom: 0; left: 0; right: 0;border:1px solid">
     <tr style="height: 25%;">
        <td>Region</td>
    </tr>
    <tr style="height: 75%;">
        <td>100.00%</td>
    </tr>
</table>​

我去掉了字体大小,以显示列是展开的。 我添加了border:1px solid只是为了确保表格已经展开。你可以把它删除。


2
这个对我来说很好用:

<style type="text/css">
#table {
 position: absolute;
 top: 0;
 bottom: 0;
 left: 0;
 right: 0;
 height: 100%;
 width: 100%;
}
</style>

对我来说,仅仅将高度和宽度改为100%并不够,设置左、右、上、下为0也不够,但同时使用它们将起到作用。


1
以下这行代码帮助我解决了一个表格滚动条的问题,该问题是在页面上出现了尴尬的两个滚动条。将下面的样式应用于表格后,问题得到了很好的解决。
<table Style="position: absolute; height: 100%; width: 100%";/>

0

尝试使用

<html style="height: 100%;">
    <body style="height: 100%;">
        <table style="height: 100%;">
        ...

为了强制所有 table 元素的父元素扩展到可用的垂直空间(这将消除使用 absolute 定位的需要)。
在 Firefox 28、IE 11 和 Chromium 34 中有效(因此很可能也适用于 Google Chrome)。

Source: http://www.dailycoding.com/posts/howtoset100tableheightinhtml.aspx


0

这是因为,当然,实际上没有页面高度。请记住,您在垂直方向上滚动页面内容而不是水平方向,从而创建有限的宽度但无限的高度。所选答案所做的是使表格占据可见区域并始终保持在那里(绝对定位)。因此,理论上,您试图做的是不可能的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接