【发布时间】:2015-10-08 21:23:42
【问题描述】:
这个 HTML 结构有一个div#page,当前页面内容将通过 Ajax 加载在其中。内容始终由section 标记组成,可以具有动态高度(相对于浏览器的百分比)或静态高度(以像素为单位)。
div#page 的高度应该调整,以便footer 紧跟在最后一个div#page > section 之后。
为了能够为div#page > section 标签设置百分比值,我给div#page 设置了100% 的高度。因此,它的 DOM 高度不会拉伸。
如果footer 标签在div#page 内,它会起作用。这对我来说不是一个好的解决方案,因为页脚会被动态加载的页面内容覆盖。
是否有一些神奇的 CSS 解决方案可以正确拉伸 div#page?
body, html { margin: 0; padding: 0; }
#outer { background: red; position: absolute; width: 100%; height: 100%; }
#page { height: 100%; }
#page > section { background: #666; width: 100%; }
#page > section:nth-of-type(2n) { background: #333; }
#page > section:nth-of-type(1) { height: 100%; }
#page > section:nth-of-type(2) { height: 160px; }
#page > section:nth-of-type(3) { height: 220px; }
#page > section:nth-of-type(4) { height: 120px; }
footer { background: green; height: 160px; }
<div id="outer">
<!-- The current page content will be loaded into this div. -->
<div id="page">
<section>Full height.</section>
<section>Static height 1.</section>
<section>Static height 2.</section>
<section>Static height 3.</section>
</div>
<!-- The footer is static and therefore not inside of the #page div. -->
<footer>
Immediately after static height 3.
</footer>
</div>
【问题讨论】:
-
@maioman 您不能真正将相对高度与最小高度父级一起使用。看到这个答案:stackoverflow.com/questions/17969022/…