我有一个固定高度的页面,661px,横向模式下 iPad 上 Safari 的高度。在 iPad 上,我不希望它滚动;内容应该完全适合。
然而,在更高的浏览器窗口中,我希望在 661px 折叠下方显示一些额外的内容(版权行)。但同样,在窗口高度小于 661 像素之前不应出现滚动条,即在滚动条出现之前应剪掉页脚。
+--------+ +--------+ +--------+ ^
| | | | | | #
| | | | | | v
+--------+ +--------+
Footer
(1) (2) (3)
- 窗口高于 661px;没有滚动条
- 窗口正好 661px;页脚被剪裁,但仍然没有滚动条
- 窗口小于 661px;出现滚动条
我的简化标记如下:
<body>
<div class="all">
... main content ...
<div class="footer">Copyright!</div>
</div>
</body>
以及相应的CSS:
.all {
height: 661px;
overflow: visible;
}
.footer {
position: absolute;
left: 0px;
top: 661px;
}
这会将所有元素放在正确的位置,但不知何故,页脚仍然会影响页面高度并因此触发滚动条,即使它位于高度较小的元素内。overflow
和height
on没有组合html
,body
并且.all
似乎可以解决这个问题,无论是在 Chrome 还是在 Firefox 中。
这样做的正确方法是什么?
而且我还想问一个更普遍的问题:窗口上的滚动条是如何触发的?显然,如果 的高度body
大于窗口,这不仅仅是因为 Chrome 检查器显示两者都html
具有body
预期的 661px 高度。