【发布时间】:2017-02-12 02:08:23
【问题描述】:
我有一个简单的布局:
+----------+
| Header |
+----------+
| |
| Content |
| |
+----------+
| Footer |
+----------+
我希望页脚是:
- 当内容未填满所有剩余的视口空间时,位于视口底部,
- 在内容下方,在视口之外,如果内容填满了所有视口空间或更多空间,则可通过滚动到达。
换一种说法,我希望内容占用至少页眉和页脚留下的所有空间,如有必要,还可以将页脚推到视口之外。
添加到等式中,我想不要硬编码页脚的高度,因为我猜它的内容大小可能会因浏览器/设备而异。
如果我天真地让默认行为在内容很长但不是页脚在页面上太高时是完美的。
如果我尝试通过将页脚绝对定位在底部来修复页脚,则相反:当内容很短时完美,但当内容太长时它与内容重叠。
我已经看到并玩过一些没有 Bootstrap 的“幼稚”(硬编码页脚高度)示例:Absolute Positioning with Footer not working
即使它们也无法正常工作,因为 Bootstrap 正在“搞砸”。
玩过我的样本后,我发现罪魁祸首是应用于所有container-fluid 的relative position。
通过删除它,我在硬编码页脚高度的“天真”情况下得到了预期的行为。
那么如何使用 Bootstrap 获得预期的行为:
- 至少在幼稚的情况下,
- 没有对页脚高度进行硬编码(可能需要一些 JS)?
/*.footer {
position: absolute;
bottom: 0px;
}*/
<body>
<div class="container-fluid">
<div class="row">
<div class="col-xl-12">
Header<br/>
Header<br/>
Header<br/>
</div>
</div>
<div class="row">
<div class="col-xl-12">
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
Content<br/>
</div>
</div>
<div class="row footer">
<div class="col-xl-12">
Footer<br/>
Footer<br/>
Footer<br/>
</div>
</div>
</div>
</body>
【问题讨论】:
标签: html css twitter-bootstrap bootstrap-4 twitter-bootstrap-4