html - CSS 页眉和页脚,可滚动内容
问题描述
我正在努力使用 CSS 创建具有固定页眉和页脚以及可滚动内容的可滚动“窗口”。这里接受的答案是我最接近解决这个问题的答案,但这需要设置“内容”类 div 的高度。
<!DOCTYPE html>
<head>
<style>
html, body {
height: 100%;
margin: 0;
}
.wrapper {
max-height: 100%;
display: flex;
flex-direction: column;
}
.header, .footer {
background: silver;
}
.content {
flex: 1;
overflow: auto;
background: pink;
}
</style>
</head>
<body>
<div class="wrapper">
<div class="header">Header</div>
<div class="content" style="height:1000px;">
Content
</div>
<div class="footer">Footer</div>
</div>
</body>
我的目标是: 1. 如果内容小于正文高度,则不滚动 2. 如果内容长于正文高度减去页眉和页脚,则滚动。
如何做到这一点?
解决方案
您可以使用 flex 或 grid :
弹性例子
body{
margin:0;
}
.wrapper {
height:100vh;
display:flex;
flex-direction:column;
}
.content {
flex:1;
overflow:auto;
}
/* demo purpose */
.content:hover:before {
content:'';
display:block;
padding-top:150vh;
}
<div class="wrapper">
<div class="header">Header of any size</div>
<div class="content" >
Content
</div>
<div class="footer">Footer of any size </div>
</div>
和网格
body {
margin:0;
}
.wrapper {
height:100vh;
display:grid;
grid-template-rows:auto 1fr auto ;
}
.content {
overflow:auto;
}
/* demo purpose */
.content:hover:before {
content:'';
display:block;
padding-top:150vh;
}
<div class="wrapper">
<div class="header">Header of any size</div>
<div class="content" >
Content
</div>
<div class="footer">Footer of any size </div>
</div>
教程/提醒:
推荐阅读
- javascript - 通过事件侦听器与直接函数调用启动时的不同转换行为
- android - 如何设置动态创建的Textview的背景颜色?
- julia - 从分布向量创建绘制矩阵
- java - 现有的 Ant 项目和依赖项
- html - 如何使用复选框过滤 Angular 7 中的简单表格
- python - 无法在 jupyter notebook RPi3 中导入 python 包(已安装)
- python - 如何使其将张量板日志附加到以前的运行中?
- python - 如何在 Visual Studio 代码上使用 Python 2.7 将我的 txt 文件的内容插入到小部件中?
- node.js - 在nodeJS中传递变量
- javascript - 升级到 Xcode 10.2 和 swift 5 后无法使用 react native 运行 ios 应用程序