html - 网站应始终填满整个屏幕

标签 html css footer

假设我在网站上有三个框 (div)(见下图):

  • 带标志的标题
  • 包含一些文字内容
  • 带有联系信息的页脚

每个盒子都有独特的颜色(按顺序:黄色、橙色和蓝色)和黑色边框。 我希望网站始终填满整个屏幕, Logo 在顶部,页脚在底部。因此,如果内容中没有足够的文本,则应扩展内容,使页脚位于底部。如果内容中有很多文本,则 slider 应出现在右侧。

如何在 CSS 中做到这一点?重要的是盒子有背景。我找到了很多解决方案,但没有一个不能与背景一起正常工作。

example

最佳答案

解决方案说明

  • 图表中的黑框最小高度为 100%,是滚动容器,并且是相对位置的,以允许子位置与其相对应。
  • 图表中的红色框实际上由 2 个框组成:
    • 一个用于动态调整大小的内容;这有足够的顶部和底部填充来为您的页眉和页脚腾出空间,并强制滚动容器展开
    • 一个用于背景;这是绝对位置,顶部和底部位置是相对于黑框及其父项指定的。
  • 图表中的黄色和蓝色框可以分别是position: absolutetop: 0bottom: 0...或者您选择如何放置它们。

这是一个 fiddle :http://jsfiddle.net/syndicatedshannon/F5c6T/

here是另一个带有显式视口(viewport)元素的版本,只是为了澄清、匹配颜色和添加边框以复制 OP 图形(尽管根据 OP,黑色边框实际上是窗口)。

示例 HTML

<html>
    <body>
        <div class="background"></div>
        <div class="content"></div>
        <div class="header"></div>
        <div class="footer"></div>
    </body>
</html>

示例 CSS

html { position: absolute; height: 100%; left: 10px; right: 10px; overflow: auto; margin: 0; padding: 0; }
body { position: relative; width: 100%; min-height: 100%; margin: 0; padding: 0; }
.background { position: absolute; top: 120px; bottom: 120px; background-color: red; width: 100%; }
.content { position: relative; padding: 120px 0; }
.header { position: absolute; top: 10px; height: 100px; width: 100%; background-color: yellow; }
.footer { position: absolute; bottom: 10px; height: 100px; width: 100%; background-color: cyan; }

另请注意,这假定您还不能依赖 CSS3。

关于html - 网站应始终填满整个屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20664409/

相关文章:

css - HTML:Div 高度需要随内容扩展

java - 添加页脚 Word apache poi java

ios - UICollectionView - 向页脚 View 添加操作

javascript - HTML 未加载 CSS,刷新后一切正常。同样在移动设备上,它在第一次加载时不起作用

php - HTML5 php 联系表单脚本确认

html - 在 css 中显示在按钮后面的文本

jquery - Appcelerator是否100%支持JQuery和CSS3

html - 在下拉列表中显示当前选择的选项?

HTML 页眉/页脚打印功能

javascript - 如何让这个 SVG 在不缩放的情况下适应视口(viewport)大小?