html - 如何填充两个动态 div 之间的垂直空间?

标签 html css

假设以下 html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <div id="header">
            <!-- dynamic height -->
        </div>
        <div id="main" style="overflow: scroll;">
            <!--
                contains actual content
                height should be whatever is left over
            -->
        </div>
        <div id="footer">
            <!-- dynamic height -->
        </div>
    </body>
</html>

基本上我想要的是:

main height = body height - (header height + footer height)

body 和 html 高度为 100%。

作为header的高度和 footer是动态的(会经常变化),我需要一种动态的方式来设置 main 的高度,即,我无法以像素或百分比指定任何高度。

确实还有其他类似的问题,但我不是在寻找“ float /粘性页脚”,main div 必须有剩余的高度。

最佳答案

您必须指定页脚和页眉的高度。

您可以在准备好的文档上使用 javascript 来设置页脚、页眉和主 div 的高度。

然后,像这样使用 css:

#header{
  position: absolute;
  top: px;
  height: /*dynamically set by javascript*/;
  left: px;
  right: px;
}

#footer {
  position: absolute;
  bottom: 0px;
  height: /*dynamically set by javascript*/;
  left: 0px;
  right: 0px;
}

#main {
  position: absolute;
  bottom: /* set by javascript with height of footer */;
  top: /* set by javascript with height of header */;
  left: 0px;
  right: 0px;
}

关于html - 如何填充两个动态 div 之间的垂直空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14625891/

相关文章:

html - 渐变在 Firefox 和 IE 中不起作用

html - 如何在不添加文本的情况下使 div 背景可见

javascript - 如何在 Thymeleaf 中使用 DataTable?

html - 使用 Bootstrap 构建 HTML 的正确方法

html - Chrome 与 box-sizing :border-box in a display:table

html - 隐藏大中型设备的导航栏切换按钮

html - 为什么这些 Bootstrap 3 居中文本列不同样顶部对齐?

asp.net - 按钮悬停着色

html - 忽略父最大宽度 css

css - 如何为一系列字体粗细设置@font-face