调整html元素的高度以填充固定页眉和页脚之间的剩余空间的正确方法是什么?
What's the proper way to adjust the height of an html element to fill the remaining space between fixed header and footer?
我在一个网站上工作,应该能够显示照片和其他内容尽可能大。我的目标是有一个固定大小的页眉和页脚(让我们说每个40px的高度),我想要一个<div>
元素来填充之间的所有空间(即高度100%的视口减去80px)。我只是想在所有屏幕上最大的内容空间,没有滚动。
+---------------------+
| Header (40px) |
+---------------------+
| |
| Dynamic (100%-80px) |
| |
| |
+---------------------+
| Footer (40px) |
+---------------------+
正确的方法是什么?这甚至可能与纯css或javascript是必需的吗?
使用已知页眉和页脚高度的框模型可以很容易地实现。
您可以选择通过box-sizing
渲染盒模型。
其他可能是使用display:table;
在这里,footer
将被下推,如果太多的内容坐在中间。
其他可能性是display:flex
或类似于fausses-column的技术,其中您使用body
background
并为中间容器设置没有边界和背景。页脚保持在绝对位置或固定位置
基于HTML的
演示:
<header>header</header>
<main>main</main>
<footer>footer</footer>
使用css height:calc(100%-80px)
只能在新浏览器中工作(尽管这是相当大的市场份额)
有一些更简单的解决方案,比如固定页眉和页脚,并根据页眉和页脚的高度填充内容,以防止内容隐藏在页眉和页脚后面。
示例CSS:body{
background-color:grey;
padding: 50px 0;
margin: 0px;
}
header {
position:fixed;
height:40px;
width:100%;
top:0px;
background-color:red;
}
footer {
position:fixed;
height:40px;
width:100%;
bottom:0px;
background-color:red;
}
HTML: <header>
Header
</header>
<div>
Contents: Bla Bla Bla
</div>
<footer>
Footer
</footer>
这也允许自动滚动内容,如果它延伸超过窗口的高度
相关文章:
- JavaScript名称空间和对象创建
- 在javascript中使用命名空间
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- javascript中的命名空间,IDE中支持代码完成/内容辅助's
- 具有大型几何图形的基于沙发的空间查询
- 如何使用javascript命名空间
- JSDoc:模块和名称空间之间的关系是什么
- js命名空间和变量范围
- html,js-如何限制元素"范围“-命名空间
- 动画制作/减缓元素填充移除元素留下的空间
- 转换自的JavaScript命名空间
- 命名空间与自调用函数
- 在IndexedDB中保留空间
- EmberJS-适用于各种模型的适配器动态名称空间
- 什么's当前命名空间/类中JavaScript子命名空间/类的语法
- 无法加载Ace.js编辑器模式和主题(命名空间项目&AMD require.js&grunt
- 静态html中图像之间的空间在javascript中消失
- IE 9压缩XML DOM中的空白空间
- 不带按钮的引导输入组文本占用一半空间
- 如何为HTML属性/选择器创建全局名称空间或变量