如果页面超出正常高度,页脚会浮动
Footer floats if the page goes beyond normal height
我正在得到下面的效果。蓝线是页脚。当页脚上方的 DIV 高度延伸时,页脚会浮动并且不会延伸到屏幕底部。
body,
html {
margin: 0px;
font-family: 'Roboto Condensed', sans-serif;
height: 100%;
}
.all_content {
display: flex;
flex-direction: column;
position: relative;
height: 100%;
}
.header {
width: 100%;
height: 80px;
display: flex;
justify-content: center;
align-items: center;
background: #0082bb;
}
.home_body {
display: flex;
flex-direction: column;
flex-grow: 1;
background: #f0f0f0;
align: center;
}
.footer {
width: 100%;
height: 50px;
display: flex;
justify-content: center;
align-items: center;
background: #0082bb;
}
<div class="all_content">
<!-- header -->
<div class="header"></div>
<!-- home body -->
<div class="home_body" align="center"></div>
<!-- Footer -->
<div class="footer"></div>
</div>
我在中间 DIV 使用 flex-grow
的原因是为了确保页脚位于 window 的底部,即使内容不多。
我在布局中没有看到您描述的浮动效果。
但这是您的代码的更简洁版本。希望对您有所帮助。
.all_content {
display: flex;
flex-direction: column;
height: 100vh;
}
.header {
flex: 0 0 80px; /* flex-grow, flex-shrink, flex-basis */
background: #0082bb;
}
.home_body {
flex-grow: 1;
background: #f0f0f0;
overflow: auto;
}
.home_body > article {
height: 2000px;
}
.footer {
flex: 0 0 50px;
background: #0082bb;
}
body,
html {
margin: 0px;
font-family: 'Roboto Condensed', sans-serif;
}
<div class="all_content">
<div class="header"></div>
<div class="home_body">
<article></article>
</div>
<div class="footer"></div>
</div>
我正在得到下面的效果。蓝线是页脚。当页脚上方的 DIV 高度延伸时,页脚会浮动并且不会延伸到屏幕底部。
body,
html {
margin: 0px;
font-family: 'Roboto Condensed', sans-serif;
height: 100%;
}
.all_content {
display: flex;
flex-direction: column;
position: relative;
height: 100%;
}
.header {
width: 100%;
height: 80px;
display: flex;
justify-content: center;
align-items: center;
background: #0082bb;
}
.home_body {
display: flex;
flex-direction: column;
flex-grow: 1;
background: #f0f0f0;
align: center;
}
.footer {
width: 100%;
height: 50px;
display: flex;
justify-content: center;
align-items: center;
background: #0082bb;
}
<div class="all_content">
<!-- header -->
<div class="header"></div>
<!-- home body -->
<div class="home_body" align="center"></div>
<!-- Footer -->
<div class="footer"></div>
</div>
我在中间 DIV 使用 flex-grow
的原因是为了确保页脚位于 window 的底部,即使内容不多。
我在布局中没有看到您描述的浮动效果。
但这是您的代码的更简洁版本。希望对您有所帮助。
.all_content {
display: flex;
flex-direction: column;
height: 100vh;
}
.header {
flex: 0 0 80px; /* flex-grow, flex-shrink, flex-basis */
background: #0082bb;
}
.home_body {
flex-grow: 1;
background: #f0f0f0;
overflow: auto;
}
.home_body > article {
height: 2000px;
}
.footer {
flex: 0 0 50px;
background: #0082bb;
}
body,
html {
margin: 0px;
font-family: 'Roboto Condensed', sans-serif;
}
<div class="all_content">
<div class="header"></div>
<div class="home_body">
<article></article>
</div>
<div class="footer"></div>
</div>