如何在固定高度的 div 之后制作无尽的 div? [复制]

Posted

技术标签:

【中文标题】如何在固定高度的 div 之后制作无尽的 div? [复制]【英文标题】:How to make an endless div after a fixed height div? [duplicate] 【发布时间】:2011-05-13 18:11:06 【问题描述】:

假设我有 2 个 Div。

第一个高度为 100 像素。 最后一个应该从第一个末尾到网站末尾。

我尝试了所有我知道的方法:当我将其设置为 100% 时,它会占用整个网站,所以 100 像素太多了。当我在不设置高度的情况下尝试它时,我只能得到我写的东西。

【问题讨论】:

【参考方案1】:

我可能会使用一些 javascript 来解决这个问题。考虑到 IE 与其他浏览器社区之间存在的许多不一致,这可能是您解决此问题的唯一好方法。使用 JQuery 之类的框架来自动设置第二个 div 的高度,这样您就可以确保相同的效果在所有浏览器中都是一致的,因为 JQuery 是跨浏览器兼容的。

【讨论】:

【参考方案2】:

我认为这在纯 CSS 中是不可能的,因为你不能做到 100% - 100px。您可以使用高度为 100% 和两行的表格。那么第一行是 100px,第二行是剩下的高度。

<table style="height:100%;">
<tr>
<td style="height:100px;">instead of div 1, is 100px</td>
</tr>
<tr>
<td>instead of div 2, takes the rest of the height</td>
</tr>
</table>

【讨论】:

我讨厌桌子...桌子太旧了!我知道它适用于表格,但我的完整设计(而且不是一个简单的设计)基于 div... 哈哈我同意表格并不理想,但从可维护性的角度来看:当您可以在简单的表格或具有奇怪 css 和 javascript 的复杂嵌套 div 之间进行选择时(它只是不起作用开箱即用),你会选择什么?每个人都理解一张简单的古桌。 :) 如果边距为负值,这可能是可能的。 @Badr Hari,你能发布一些示例代码吗?我期待看到您的解决方案的利润率为负。 绝对定位有什么问题?【参考方案3】:

利用position: absolute,当你同时指定topbottom时有个技巧,基本上就是拉伸你的div:

<!DOCTYPE html>
<html>
    <head>
        <style>
            body  height: 100%; margin: 0; 
            #felso  height: 100px; 
            #also  position: absolute; top: 102px; bottom: 0; left: 0; right: 0; 
        </style>
    </head>
    <body>
        <div id="felso"></div>
        <div id="also"></div>
    </body>
</html>

根据您的具体需求进行调整。我为top 写了102px,因为有边框,将1px * 2 添加到#felso 的高度。

jsFiddle Demo

【讨论】:

#also 不占用视口的其余部分。 div 2 应该是 100% 高减去 div 1 的高度。 它实际上拉伸到视口的大小,因为同时给出了顶部和底部。你试过哪个浏览器?对我来说,它适用于 IE8、FF、Chrome。 同意,确实如此。我的问题是我没有复制并强制浏览器进入怪癖模式(IE8)的文档类型。无论如何,您的解决方案似乎是最优雅的(至少比表格好)。有趣的是,如果我尝试过,怪癖模式下的 FF 可以正确地做到这一点。 :)

以上是关于如何在固定高度的 div 之后制作无尽的 div? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

用伪类实现一个div的宽度和高度是固定百分比

无论图像高度如何,如何固定 div 高度

如何在固定高度的div内垂直居中动态高度的图像?

css手机版页面制作时如何让背景图片适应div的高度和宽度

可滚动 div 和固定底部 div 如何在包装器内动态更改高度?

如何设置div的固定宽度和高度